2011-09-10 23 views
0

我最近完成了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

回答

1

演示你有沒有考慮/研究是否這實際上是一個資源問題。 ..意思是否這個資源實際上存在於Android試圖從中抽取的文件夾中?

+0

我覺得自己像個白癡,但是從一些有用的人在最後一小時發送錯誤報告,事實證明。這是一個資源問題,似乎有些版本的Android只是返回一個我依賴的空位圖,但其他人只是引發異常。請考慮解決問題。 – DevTim

+0

你如何處理這個問題?你知道爲什麼它返回NULL?你怎麼解決它?不要告訴我你只是嘗試...趕上並跳過加載.. TT – Zennichimaro

2

當我在模擬器上快速迭代(調整/測試)時,有時會出現類似這樣的錯誤。他們通常通過做一個「螞蟻清理」然後重新編譯來解決。你可以嘗試清洗,然後做一個新的構建,將它安裝在你的朋友設備上,然後看看你是否仍然有錯誤。

-Kurtis

+0

螞蟻乾淨! - 謝謝 - 我把它排除了! – JeffG

0

在我的情況下,我錯誤地放置了「xml」文件夾。它位於項目的根目錄,但剛剛移動到「/ res」文件夾中,錯誤消失了。

1

我目前正面臨着生產應用程序的崩潰,並發現了問題。這種崩潰只發生在HTC設備上。好像HTC改變了解碼資源的核心Android方法。

BitmapFactory.decodeResource文檔說:

Returns 
    The decoded bitmap, or null if the image could not be decode. 

但是HTC版的崩潰:(

相關問題