I have a TabActivity that seems to be dieing on a small set of phones when I add the Drawable to it. From the reports, the same tab code ran successfully at one point, but suddenly stopped during one launch(usually via pending intent)
The code thats executing in onCreate is this
spec = theTtabHost.newTabSpec(STATS_TAG).setIndicator(getText(R.string.statsTab),
res.getDrawable(R.drawable.ic_tab_stats))
The stack trace I receive is here
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test/com.test.Main}: android.content.res.Resources$NotFoundException: File res/drawable/ic_tab_stats.xml from drawable resource ID #0x7f020013
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2737)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2753)
at android.app.ActivityThread.access$2500(ActivityThread.java:129)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2107)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4701)
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:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_tab_stats.xml from drawable resource ID #0x7f020013
at android.content.res.Resources.loadDrawable(Resources.java:1725)
at android.content.res.Resources.getDrawable(Resources.java:590)
at com.test.Main.onCreate(Main.java:162)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2701)
... 11 more
Caused by: java.lang.NullPointerException
at android.graphics.drawable.DrawableContainer$DrawableContainerState.addChild(DrawableContainer.java:349)
at android.graphics.drawable.StateListDrawable$StateListState.addStateSet(StateListDrawable.java:265)
at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:796)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:737)
at android.content.res.Resources.loadDrawable(Resources.java:1722)
... 15 more
The ic_tab_stats.xml file is in drawable, and is here.
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/stats"
android:state_selected="true" />
<item android:drawable="@drawable/stats_deselect" />
</selector>
The stats.png and stats_deselect.png are peers inside drawable. hdpi and ldpi do not have either file, and mdpi is empty. My app supports back to 1.5, so I used drawable instead of md开发者_如何转开发pi.
From the reports, it seems to be pretty random.
Turns out this is sort of normal behavior on Android upgrades.
精彩评论