2013-01-15 28 views
0

市場上發佈應用程式有錯誤:java.lang.NumberFormatException(parse.Int)

java.lang.NumberFormatException

堆棧的下面。

原因是這個代碼?

fade = Integer.parseInt(ListPreference); 

我看到「其他」設備受此次崩潰的影響。任何想法?

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.example.app.Notify}: java.lang.NumberFormatException: unable to parse '' as integer 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1659) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675) 
at android.app.ActivityThread.access$1500(ActivityThread.java:121) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:130) 
at android.app.ActivityThread.main(ActivityThread.java:3768) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NumberFormatException: unable to parse '' as integer 
at java.lang.Integer.parseInt(Integer.java:362) 
at java.lang.Integer.parseInt(Integer.java:332) 
at com.example.app.Notify.onCreate(Notify.java:33) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623) 
... 11 more 

回答

1

java.lang.NumberFormatException: unable to parse '' as integer at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1659)

==>看來你是試圖解析一個空字符串。您應該將解析操作包含在try/catch塊中,並處理格式錯誤的輸入。

+0

我可以看到代碼中斷的確切行嗎? –

+1

in your stacktrace:'com.example.app.Notify.onCreate(Notify.java:33)'=> Notify.java文件的第33行。這可能是你引用的那個。 – assylias

+0

謝謝。這個值是從sharedpreferences中讀取的。我可以用IF檢查嗎? if(value.isEqual(null)){[...]} else {value =「value」}如何檢查字符串值是否爲空?謝謝! –

1

在日誌中:

NumberFormatException: unable to parse '' as integer

你正在試圖解析空間爲整數。字符串值解析爲整數檢查之前null或空

1

其實,有一個在字符串ListPreference任何符號或字符發生,

其更好地處理這個異常。

try { 
    fade = Integer.parseInt(ListPreference); 
} catch (NumberFormatException e) { 
     Log.e("Exception",e.toString()); 
} 

更新:

看那Jakarta Commons的

NumberUtils.isNumber()

這可以用來檢查最給定的字符串是否是一個數字。

還在使用前String ListPreference剛剛使用trim()刪除它的空白區域。

使用ListPreference.trim()並且還檢查長度是否大於1的ListPreference的長度。

like,ListPreference.length() > 1

相關問題