#android #nullpointerexception
#Android #исключение nullpointerexception
Вопрос:
У меня есть TabActivity, который, похоже, умирает на небольшом наборе телефонов, когда я добавляю к нему возможность рисования. Из отчетов следует, что один и тот же код вкладки в какой-то момент был успешно запущен, но внезапно остановился во время одного запуска (обычно из-за ожидающего намерения)
Код, который выполняется в onCreate, заключается в следующем
spec = theTtabHost.newTabSpec(STATS_TAG).setIndicator(getText(R.string.statsTab),
res.getDrawable(R.drawable.ic_tab_stats))
Трассировка стека, которую я получаю, находится здесь
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 файл находится в режиме рисования и находится здесь.
<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>
Stats.png и stats_deselect.png являются одноранговыми внутри drawable. hdpi и ldpi не имеют ни одного файла, а mdpi пуст. Мое приложение поддерживает возврат к версии 1.5, поэтому я использовал drawable вместо mdpi.
Судя по отчетам, это кажется довольно случайным.
Ответ №1:
Оказывается, это своего рода нормальное поведение при обновлении Android.
Комментарии:
1. таер, не могли бы вы объяснить немного больше?