3

我的動態桌布中有一個自定義圖片偏好設置,允許用戶從他們的SD卡中選擇一張圖片作爲背景。我從here得到了代碼,並沒有對它進行修改,所以除了變量或對象名外,它幾乎完全相同。當Intent不爲空時,Android「失敗傳遞結果ResultInfo」

我已經得到一些這些堆棧跟蹤我的開發者控制檯:

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=file:///mnt/sdcard/com.idunnolol.rageface/rage_fullpanel.png }} to activity {gilleland.software.pixelrain/gilleland.software.pixelrain.PixelRainSettings}: java.lang.NullPointerException 
at android.app.ActivityThread.deliverResults(ActivityThread.java:3515) 
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3557) 
at android.app.ActivityThread.access$2800(ActivityThread.java:125) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:123) 
at android.app.ActivityThread.main(ActivityThread.java:4627) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:521) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NullPointerException 
at gilleland.software.pixelrain.PixelRainSettings.getRealPathFromURI(PixelRainSettings.java:107) 
at gilleland.software.pixelrain.PixelRainSettings.onActivityResult(PixelRainSettings.java:90) 
at android.app.Activity.dispatchActivityResult(Activity.java:3890) 
at android.app.ActivityThread.deliverResults(ActivityThread.java:3511) 
... 11 more 

我沒有得到我自己的電話本例外。

我一直在尋找一段時間來弄清楚是什麼導致了NullPointerException,但是我發現的大多數解決方案都涉及「ResultInfo {who = null,request = 1,result = -1,data = null}」。我得到的堆棧跟蹤實際上有數據的意圖......所以我無法弄清楚NullPointerException是從哪裏來的。

任何和所有的幫助表示讚賞。我可以提供任何必要的代碼來幫助解決此問題。 謝謝!

回答

1

的requestCode和resultCode爲是正確的,所以我想這個問題是由於未在代碼以下部分正確初始化變量的指針之一:

Uri selectedImage = data.getData(); 
String RealPath; 
SharedPreferences customSharedPreference =   
getSharedPreferences(fingerflashpro.SHARED_PREFS_NAME, Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = customSharedPreference.edit(); 
RealPath = getRealPathFromURI (selectedImage); 
editor.putString("image_custom", RealPath); 
editor.commit(); 

這可能是一些涉及到selectedImage或真實路徑。註釋掉大部分代碼並逐行調試。

+0

試圖找到此異常的原因唯一的問題是,我不會在我自己的手機或我的朋友擁有的任何設備上發生此錯誤。 – Gilleland

+0

我認爲這個問題是由於getRealPathFromURI造成的。它不具有跨不同設備的一致性行爲。例如,從攝像頭拍攝的一些照片無需每次都返回一個URI – cnbuff410

+0

這絕對是發生異常的地方,只有在某些手機上,但是爲什麼在有數據被返回時拋出異常? – Gilleland

相關問題