반응형 IT 실무/모바일 프로그래밍21 [Error] NetworkOnMainThreadException 안드로이드 3.0부터 메인쓰레드에서 네트워크 기능을 수행할 수 없게 막아두었다. 네트워크 적인 장애 때문에 UI구성에 예외가 생기는 것을 방지하겠다는 것이다. 이 말은 안드로이드 2.x버전에서는 메인쓰레드 상에서도 네트워크를 사용 가능하다는 것이다. 이를 이용해서 굳이 메인쓰레드 상에서 네트워크를 사용 해야겠다면 여러가지 우회하는 방법이 있다. 하지만 정석대로 하려면 AsyncTask를 이용해서 멀티쓰레딩을 해 주어야 한다. 참고1 http://developer.android.com/reference/android/os/AsyncTask.html 참고2 http://croute.me/594 참고2(예제) http://makerj.tistory.com/83 2013. 2. 8. [Error] IllegalArgumentException: Host name may not be null HttpPost httppost = new HttpPost("http://abc_def.com/"); 이런 부분에서 오류난다. 호스트 주소는 null이면 안된다는 것인데, 이는 자바에서 url내부에 있는 언더바(_)를 인식하지 못해서 호스트 주소를 제대로 파싱하지 못한 것이다. 이 오류는 HttpPost httppost = new HttpPost("http://abc_def.com/aaa.php?dd=hello world"); 와 같이 파라미터 값에 공백이 있거나 특수문자가 있어도 발생 할 수 있다. 즉, url은 호스트, 도메인, 서브 도메인, 하위 폴더, 파일 등등 복잡한 구성을 가지고 있으므로 조금만 군더더기가 있어도 인식을 제대로 못하는 것이다. 파일이나 파라미터에 언더바나 특수문자가 있을 경우 .. 2013. 2. 8. [Error] Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 에러 1. pakage이름에 대문자가 쓰였을 경우 이 오류가 생길 수 있다. 2. 모든 pakage이름이 소문자라면 AndroidManifest.xml 에 오류가 있는 것이다. 주로 AndroidManifest.xml의 코드에 pakage이름 관련 오류가 있는 경우가 많다. 흔한 패턴은 pakage이름이 대문자로 쓰여서 pakage이름을 수정하면 이클립스에서 자동으로 여러 소스 파일의 해당 pakage이름을 바꿔준다. 빨간줄 즉, 컴파일 에러가 안생기므로 어디가 문제인지 모르지만 eclipse의 자동화 기능이 항상 완벽 한 것은 아니다. 보통 AndroidManifest.xml를 확인 해 보면 바꾸기 전의 pakage이름이 그대로 적용 되어 있는 경우도 많다. 이를 수정하면 해결 된다. 2013. 1. 22. 이전 1 2 다음 반응형