마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

HttpURLConnectionImpl.getResponse NullPointerException

0 추천

안녕하세요... 이것저것 알아보는데 원인을 몰라 여기에 올립니다.

널포인트 난 부분은 

rd = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));

입니다. 

같은 현상을 겪으신분이나 아시는분은 조언 부탁드려요.

  (11,920 포인트) 님이 2013년 6월 28일 질문

1개의 답변

+1 추천
 
채택된 답변
con 이 null 인거 같은데 체크한번 해보세용
Gradler (109,780 포인트) 님이 2013년 6월 28일 답변
 님이 2013년 6월 28일 채택됨
답변감사드립니다.
con이 널이면 con.getOutputStream();
이부분에서도 익셉션이 나야하지 않나요?
con.getInputStream()이전에 같은문장에서
위에 걸 호출하는디;;;;;;

게다가 트라이 캐치로 감싸놓았는데 어플이 죽어버리네요 ㅡㅡ;;;
제가 테스트할때 한번도 일어난적이 없었는데
디벨콘솔에 위와같이anr이 올라왔더라구여.

그리고 간헐적으로 일어나는거 같습니다.
단말에따라 틀리지만 자주 일어나는 단말도 있는거 같아요....

트라이캐치에서도 안잡히고 어떻게 대응하여야 할까요?
rd = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
처음 질문에서 위 문장에서 널포인트 난다고 하셨는데
저기서는 참조하고 있는 변수가 con 밖에 없으니 con에서 널포인트가 나는게 맞습니다.

그리고 같은 메소드내에서 con.getInputStream()을 여러번 호출하셔서
그런문제가 생기는건지는 확실하게 모르겠는데
InputStream in = null;
try {
    in = new BufferedInputStream(con.getInputStream());
    //이런식으로 변수에 한번 담으신 다음
} catch (Exception e) {
} finnaly {
 con.disconnect();
}

if(in != null) {
}
위와 같이 InputStream이 필요할때 널체크를 해서
해당 객체에 접근하는 방식으로 바꿔보시기 바랍니다.

con.getInputStream() 을 하고나서 자동으로 커넥션이 끊어지기 때문일지도 모르겠네요
작업을 마치신다음에 반드시 disconnect() 시켜주시고요
답변감사합니다.
disconnect을써야 겠네요...
...