http://stackoverflow.com/questions/6277584/android-honeycomb-networkonmainthreadexception-even-when-using-asynctask-and-no

android의 보안 모드 상태일 경우 그를 해지시켜주도록 해야 하는데 기본적으로 AndroidManifest.xml에 

<uses-permission android:name="android.permission.INTERNET"/>

를 기입해주면 네트워크 허용상태가 되나 (이유는 아직 모르겠으나)추가 적으로 StrictMode라는 경고창과 함꼐 보안에 걸리는데 이떄는 setContentView() 하단에 

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
StrictMode.setThreadPolicy(policy);
와 같이 기입해주면 된다. 이때, 두줄 주제에 많은 빨간줄이 그어지는데.. StrictMode의 경우는 Class를 Import시켜주면 되고 나머지는 경우에따라 특정 OS만 허용하게 class상단에 @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)와 같이 걸어주거나 전체 적용할 경우는 빨간 줄 중 하나를 클릭한 후 F2(MAC의 경우)를 누르고 Disable Check를 눌러주면 된다.

http://blog.naver.com/PostView.nhn?blogId=dimigozzang&logNo=110140580636
이 와중에 그와 관계없이 다양한 Error가 떠주시는데 특히 "FATAL EXCEPTION: main" Error의 경우는 바로 아래 라인에 Error가 발생한 object의 정보가 기입되어 있으므로 그것을 보고 수정해주면 된다.
또한, 이 Error는 주로 
1. 엑티비티 이름을 메니페스트xml 파일에 등록하지 않았거나 오타가 있다 - 엑티비티를 여러개 작성하는 경우가 아니라면 발생하는 경우는 적습니다. 그렇지만 확인해 보아야 하는 것입니다. 
2. 콤퍼넌트가 실질적으로 xml화면에 등록은 시켰지만, R.java 파일에 등록되지 않았거나, 등록되었어도 컴파일되지 못했다
이와 같은 경우에 주로 뜨므로 참고해 둘 것.

url을 통해 image를 load할 경우는 URL class를 이용한다.
URL의 openconnection() method로 여결 시 data값을 return값으로 나오므로 이 값을 getInputStream() method로 받아서 
Data값을 bitmap type의 Image로 변환시키는 BitmapFactory.decodeStream()의 parameter로 넣고 결과 값을 Bitmap Class 변수로 받아 사용하면 된다.
위 내용을 source code로 변환하면 아래와 같다.
Ex)
URL url = new URL("http://image10.bizrate-images.com/resize?sq=60&uid=2216744464");
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
imageView.setImageBitmap(bmp);

'PHP > php_mysql연동' 카테고리의 다른 글

PHP 메모리 부족 134217728  (2) 2013.07.03
PHP로 Mysql 연동(1)  (0) 2013.07.03
mysql_fetch_assoc 와 mysql_fetch_array의 차이점  (0) 2013.07.02

+ Recent posts