정말 이해가 안되는 이유는 무엇입니까? java.lang.NumberFormatException : Invalid long : "null"이 여기에서 발생합니다.문자열 null 또는 빈 검사 후에도 Android Java 예외가 발생했습니다.
문제는 다음과 같습니다.
try {
userid = ((JSONObject) msg.obj).getString("userid");
if (userid.equals("") || userid.isEmpty() || null==userid) {
onClickLogout();
return;
} else {
client.setUserid(Long.parseLong(userid));
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
onClickLogout();
return;
}
line client.setUserid (Long.parseLong (userid)); 뒤에 오는 예외를 얻는다
java.lang.NumberFormatException: Invalid long: "null"
at java.lang.Long.invalidLong(Long.java:125)
at java.lang.Long.parse(Long.java:362)
at java.lang.Long.parseLong(Long.java:353)
at java.lang.Long.parseLong(Long.java:319)
at client.setUserid(Long.parseLong(userid));
중요한 점은 null과 코드에서 사용자 ID의 빈 검사 후에도 null 예외가 발생한다는 것이다. 나랑 무슨 상관이야? 전문가를 확인해주세요!
equals를 호출하는 대신 사용자 ID가 null인지 먼저 확인하십시오. 그렇지 않으면 NPE로 실행될 수 있습니다. –
질문을 편집했습니다. 확인하십시오. 이것은 가능한 NullPointerException을 피할 수 있습니다. 또한 @laalto의 answer를 추가해야합니다. –
아, 죄송합니다. @PedroOliveira. 방금 내 의견을 보았습니다 xD –