我如何修复这个导致我的android应用程序在某些手机上崩溃的异常错误?

我如何修复这个导致我的android应用程序在某些手机上崩溃的异常错误?,android,Android,我最近完成了Android智能手机游戏的开发 它是使用安卓2.1 sdk设计的,在我的测试设备2.1三星galaxy europa和2.2三星galaxy tab上运行没有问题,在2.3.3的模拟器中运行良好 直到最近,它在我的朋友HTC desire S上运行良好,但突然停止工作,在启动时崩溃 android开发人员控制台在崩溃时会弹出以下日志: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sur

我最近完成了Android智能手机游戏的开发

它是使用安卓2.1 sdk设计的,在我的测试设备2.1三星galaxy europa和2.2三星galaxy tab上运行没有问题,在2.3.3的模拟器中运行良好

直到最近,它在我的朋友HTC desire 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
该错误似乎是由于在第一个活动的onCreate方法的末尾运行loadInventory方法时找不到资源造成的

load inventory方法采用活动的上下文

下面是令人不快的代码:

int id = context.getResources().getIdentifier(name.toLowerCase(),"drawable",context.getPackageName());
                  bullet_images.add(BitmapFactory.decodeResource(context.getResources(),id));
这段代码在过去的两个月里没有被触动过,在我的2.1和2.2设备上运行没有问题,但我一定做了些什么。似乎突然间,一些手机看不到资源,但不幸的是,我无法复制这个bug,我的朋友也不在身边,因为我缠着他让我拿走他的手机,并一直试图修复它,我对此非常生气

任何帮助都将不胜感激,因为这让我发疯,尤其是我无法用我的任何设备复制这个错误。我甚至还没有确认它是否能在2.3.3上运行,因为下载我的应用程序的人没有留下任何有用的反馈或提交许多错误报告。希望这只是HTC android变体的一个bug

如果你想亲自尝试这款应用,看看它是否会出现在你的手机上,这里是Android Market上的演示

您是否考虑/研究过这是否真的是一个资源问题…意思是该资源实际上存在于Android试图从中提取的文件夹中?

您是否考虑/研究过这是否真的是一个资源问题…意思是该资源实际上存在于Android试图提取的文件夹中从?

当我在模拟器上快速迭代(调整/测试)时,有时会出现类似这样的错误。它们通常通过执行“ant-clean”然后重新编译来解决。您可以尝试清理,然后重新构建,将其安装到您的好友设备上,然后查看是否仍然出现错误


-Kurtis

当我在模拟器上快速迭代(调整/测试)时,有时会出现这样的错误。它们通常通过执行“ant-clean”然后重新编译来解决。您可以尝试清理,然后重新构建,将其安装到您的好友设备上,然后查看是否仍然出现错误


-Kurtis

就我而言,我把“xml”文件夹放错了位置。它位于项目的根目录上,但只是移动到“/res”文件夹中,错误就消失了。

在我的例子中,我错误地放置了“xml”文件夹。它位于项目的根目录上,但刚刚移动到“/res”文件夹中,错误就消失了。

我目前在一个生产应用程序中面临崩溃,并已发现问题。这种崩溃只发生在HTC设备上。HTC似乎改变了Android解码资源的核心方法

文件说明:


但HTC版本的崩溃:(

我目前在一个生产应用程序中面临崩溃,并发现了问题。这种崩溃只发生在HTC设备上。HTC似乎改变了Android解码资源的核心方法

文件说明:


但HTC版本的崩溃:(

我觉得自己像个白痴,但在最后几个小时从几个有帮助的人发送错误报告。结果是资源问题,似乎Android的一些版本只是返回了一个我依赖的空位图,但是其他的只是引起了一个例外。考虑这个问题已经解决了。你怎么处理这个问题?你知道为什么会这样吗?rn NULL?你怎么做来修复它?别告诉我你只是在尝试…捕获并跳过加载..t-TI感觉像个白痴,但在过去的一个小时里,一些乐于助人的人发送了错误报告。结果证明这是一个资源问题,看起来Android的一些版本只是返回了我所依赖的空位图,而其他版本只是导致了异常考虑问题解决。你如何处理这个问题?你知道它为什么返回空吗?你做什么来修复它?不要告诉我你只是尝试…捕捉和跳过加载。
Returns
     The decoded bitmap, or null if the image could not be decode.