고수님들 도와주세요.
php에서 발생시킨 xml를 안드로이드쪽에서 처리할 때 제목과 같은 예외가 발생합니다.
소스는 아래와 같습니다.
try {
url = new URL("urlname); //URL연결 설정
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); //컨넥션 객체 생성
//연결이 되었다면....
if(conn != null) {
conn.setConnectTimeout(10000);
conn.setUseCaches(false);
//아래 빨간 글자부분에서 넘어가지 않습니다.
if( conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
for(;;) {
//웹상에서 보여지는 텍스트를 라인단위로 읽어 저장
String line = br.readLine();
if(line == null) break;
//tv.setText(line.toString());
Log.d(">>>>>>>>>>>>","====> "+line.toString());
jsonhtml.append(line+"\n");
Log.d(">>>>>>>>","=====> line print");
}
br.close();
bufferArray = jsonhtml.toString().split("\n");
// String re = bufferArray[5];
//Log.d(">>>>>>>>>>>>","====> "+re);
}
conn.disconnect();
}// end if conn!=null
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} //end try
AndroidManifest에는 유저퍼미션을 INTERNET으로 추가 해두었습니다.
로그켓에 에러 메세지를 보면...
11-25 05:42:31.462: E/AndroidRuntime(1578): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.talktalkclub/com.android.talktalkclub.SearchClub}: android.os.NetworkOnMainThreadException
라고 뜨는데 어디에서 잘못된 것인지요....
아무리 봐도 잘 모르겠네요... 부탁드립니다.




로그대로 입니다. Network 관련 Request는 UIThread 에서 실행되면 안되도록 바뀌었습니다.
Background Thread를 만들어서 처리해 보세요
Activity 를 포함한 (Service / Receiver etc..) 안드로이드 기본 컨포넌트들은 각자의 MainThread(UIThread)를 갖습니다.
Activity class 의 내부 일반 메소드들은 이 UIThread 에서 동작하는거구요...
반대로 View 관련 update 메소드는 Background Thread 에서 접근하면 exception이 발생하죠