현재 스레드의 스트림에서 개체를 검색하는 데 문제가 있습니다. 현재 스트림에서 읽으려고하는 곳에서 널 포인터 오류가 발생합니다. 입력 스트림은 서비스 클래스에서 인스턴스화되어 앱에 대한 하나의 연결 만 필요합니다. 왜 널 포인터 오류가 발생하는지에 대한 명백한 이유가 있는지 누구든지 알 수 있습니까?스트림 스레드 널 포인터 오류
@Override
public void run() {
try {
while(true){
while ((mess = (com.DrawTastic.Message) messRec.readObject()) != null) {
runOnUiThread(new Runnable() {
public void run() {
mAdapter.add(mess);
}
});
}
}
} catch (IOException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
오류 추적 :
03-27 23:08:10.800: ERROR/AndroidRuntime(2218): FATAL EXCEPTION: Thread-13
03-27 23:08:10.800: ERROR/AndroidRuntime(2218): java.lang.NullPointerException
03-27 23:08:10.800: ERROR/AndroidRuntime(2218): at com.DrawTastic.ChatActivity.run(ChatActivity.java:149)
03-27 23:08:10.800: ERROR/AndroidRuntime(2218): at java.lang.Thread.run(Thread.java:1019)
약간의 OT하지만 루프가 null을 테스트하는 이유는 무엇입니까? null 보내는 중입니까? 또는'readObject()'가 스트림의 끝에서 null을 리턴한다는 오해를 받고 있습니까? 그렇지 않으면'EOFException'을 throw합니다. – EJP