我最近完成了Android智能手機遊戲的開發。我該如何解決這個導致我的android應用程序在某些手機上崩潰的異常錯誤?
它是使用android 2.1 sdk設計的,在我的測試設備上運行沒有問題2.1 samsung galaxy europa和2.2 samsung galaxy tab,似乎在2.3.3的模擬器中運行良好。
直到最近它在我的朋友HTC慾望S上運行良好,但突然它停止工作,開始崩潰。
Android開發者控制檯吐出這個日誌當從崩潰:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.survivaltraildemo/com.survivaltraildemo.SurvivalTrail}: android.content.res.Resources$NotFoundException: Resource ID #0x0
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1816)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837)
at android.app.ActivityThread.access$1500(ActivityThread.java:132)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4196)
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:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x0
at android.content.res.Resources.getValue(Resources.java:901)
at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:547)
at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:605)
at com.survivaltraildemo.StaticValues.loadInventory(StaticValues.java:609)
at com.survivaltraildemo.SurvivalTrail.onCreate(SurvivalTrail.java:31)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1780)
... 11 more
這樣看來,錯誤是由資源不被人發現時,loadInventory方法在隨後運行的onCreate的結束造成的第一項活動的方法。
加載清單方法採用活動的上下文。
這是問題的代碼位:
int id = context.getResources().getIdentifier(name.toLowerCase(),"drawable",context.getPackageName());
bullet_images.add(BitmapFactory.decodeResource(context.getResources(),id));
此代碼沒有被觸動,在過去2個月運行在我的2.1和2.2的設備沒有問題,但我一定是做了。突然間,有些手機看不到資源,但不幸的是我無法複製這個錯誤,而我的朋友也不在身邊,因爲我糾纏他,讓我拿他的手機並不斷嘗試修復它而變得非常生氣。
任何幫助將非常感謝,因爲這是讓我瘋狂,尤其是因爲我不能用我的任何設備複製這個錯誤。我甚至沒有確認它可以在2.3.3上運行,因爲下載了我的應用的用戶沒有留下任何有用的反饋或提交很多錯誤報告。希望這只是HTC的android變體的一個bug。
如果你想自己嘗試應用程序,看看它是否會發生在你的手機在這裏是在Android Market上 https://market.android.com/details?id=com.survivaltraildemo&feature=search_result
我覺得自己像個白癡,但是從一些有用的人在最後一小時發送錯誤報告,事實證明。這是一個資源問題,似乎有些版本的Android只是返回一個我依賴的空位圖,但其他人只是引發異常。請考慮解決問題。 – DevTim
你如何處理這個問題?你知道爲什麼它返回NULL?你怎麼解決它?不要告訴我你只是嘗試...趕上並跳過加載.. TT – Zennichimaro