您的位置:首页 > 移动开发 > Android开发

Caused by: android.content.res.Resources$NotFoundException: File res/drawable-mdpi/

2015-10-24 18:10 549 查看
这是我在做测试应用功能时,出现的一个bug,先晒晒看看问题吧
10-24 14:31:12.914: E/AndroidRuntime(867): FATAL EXCEPTION: main
10-24 14:31:12.914: E/AndroidRuntime(867): Process: com.android.systemui, PID: 867
10-24 14:31:12.914: E/AndroidRuntime(867): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.systemui/com.android.systemui.usb.UsbStorageActivity}: android.content.res.Resources$NotFoundException: File res/drawable-mdpi/pointer_spot_hover_icon.xml from drawable resource ID #0x10804b6
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2338)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.app.ActivityThread.access$800(ActivityThread.java:151)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.os.Handler.dispatchMessage(Handler.java:110)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.os.Looper.loop(Looper.java:193)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.app.ActivityThread.main(ActivityThread.java:5299)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at java.lang.reflect.Method.invokeNative(Native Method)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at java.lang.reflect.Method.invoke(Method.java:515)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at dalvik.system.NativeStart.main(Native Method)
10-24 14:31:12.914: E/AndroidRuntime(867): Caused by: android.content.res.Resources$NotFoundException: File res/drawable-mdpi/pointer_spot_hover_icon.xml from drawable resource ID #0x10804b6
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.content.res.Resources.loadDrawable(Resources.java:2152)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.content.res.Resources.getDrawable(Resources.java:710)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at com.android.internal.widget.ActionBarView.setIcon(ActionBarView.java:718)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at com.android.internal.policy.impl.PhoneWindow.setDefaultIcon(PhoneWindow.java:1469)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.app.Activity.initActionBar(Activity.java:1930)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.app.Activity.setContentView(Activity.java:1945)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at com.android.systemui.usb.UsbStorageActivity.onCreate(UsbStorageActivity.java:238)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.app.Activity.performCreate(Activity.java:5264)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2302)
10-24 14:31:12.914: E/AndroidRuntime(867): 	... 11 more
10-24 14:31:12.914: E/AndroidRuntime(867): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #2: invalid drawable tag pointer-icon
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:933)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
10-24 14:31:12.914: E/AndroidRuntime(867): 	at android.content.res.Resources.loadDrawable(Resources.java:2148)
10-24 14:31:12.914: E/AndroidRuntime(867): 	... 20 more
这个错误是我在测试状态栏时出现的bug,第一开始我认为哪里少了资源,下面我把我遇到的这种情况一一列出来

1.缺少我们需要的资源,只有我们在需要的文件添加就可以了

2.把我们的apk重新clean一下,原因我们的虚拟机被占用,这样就可以了

3.赋值错误,原因:比如settext(),我们却给了drawable类型,就会报错

4.framework\base\core\res添加资源时,我们需要update-api 一下,在current.txt中生成资源id

而我现在遇到的却不是以上的问题,所以我无法确定哪里出现了问题,首先我把UsbStorageActivity资源和pointer_spot_hover_icon.xml 中资源都搜索,发现资源文件都存在,那为什么会出现这种错误哪?

因为它是偶然出现的错误,复发性很低,所以无法重复出现,所以我首先在UsbStorageActivity中添加try cauch 只是为了防止出现错误时,影响用户的使用体验, 然后在drawable文件中添加pointer_spot_hover_icon.xml ,防止为适配不在标准中,像我现在就是360*360的,如果有好的建议,请回复,现在我只能这样做
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: