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

java.lang.NumberFormatException 에러가 나는 이유가 무엇일까요?

0 추천

구글 플레이 콘솔에서 일단 난 에러 입니다.

보고서 1

java.lang.NumberFormatException: 
  at java.lang.Integer.parseInt (Integer.java:615)
  at java.lang.Integer.valueOf (Integer.java:801)
  at com.cokr.app.MainActivity$WebViewClientClass.shouldOverrideUrlLoading (MainActivity.java:874)
  at android.webkit.WebViewClient.shouldOverrideUrlLoading (WebViewClient.java:83)
  at org.chromium.android_webview.AwContentsClientBridge.shouldOverrideUrlLoading (PG:16)
  at android.os.MessageQueue.nativePollOnce (Native Method)
  at android.os.MessageQueue.next (MessageQueue.java:336)
  at android.os.Looper.loop (Looper.java:197)
  at android.app.ActivityThread.main (ActivityThread.java:7777)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1047)

 

 

소스코드를 가보면, 초록색 부분에 코드가 찍혀있는데요

구글에 검색해본결과, 문자열함수를 string 숫자 함수로 찍어서 생기는 문제인 것 같은데

완전 초보라 질문드리기 죄송하네요.. 그래도 혹시 시간을 조금만 투자해주셔서 도움주시면

너무 감사하겠습니다.

  String splitResult[] = null; 
이 부분이 int splitResult[] = null; 이게 정상적인걸까요..?
 노란색 부분이 찍힌 에러 문제 부분이에요. 
 
// - Music Content
String splitResult[] = null;
if (url.contains("Electronic_v2/")) {
   splitResult = url.split("Electronic_v2/");
   documentSRL = Integer.valueOf(splitResult[splitResult.length - 1]);
} else if (url.contains("Electronic_v2") && url.contains("document_srl=")) {
   splitResult = url.split("document_srl=");
   documentSRL = Integer.valueOf(splitResult[splitResult.length - 1]);
} else {
botserv (210 포인트) 님이 2020년 3월 30일 질문

1개의 답변

0 추천
splitResult[splitResult.length - 1]  값이 integer 가 아닌 문자가 들어간듯 하니. 로그 찍어 확인 해 보세요.
익명사용자 님이 2020년 3월 31일 답변
혹시 만약에 잘못되어서 숫자값이 아닌 경우 문자값이 들어올경우
return 하고싶을 경우에는 어떻게 해야할까요?
한가지 더 궁금한게 공부하다보니
Integer.valueOf 값이 -128 ~ 127 사이의 값이라고 배웠는데
documentSRL 값이 342362 처럼
127보다 큰 경우에 문자 값이 와서 생긴 문제가아니라
127보다 값이 큰 경우에도 발생할 수 있을까요?
기존에 valueOf 에서 parseInt로 일단 수정했습니다.
...