I've got couple reports on Market about this exception. There is no reference to where it happens in my app and majority of users do not have thit issue. How do I debug something like that? This is NOT exception I get from all devices. Just one specific device might report it.
android.content.res.Resources$NotFoundException: Resource ID #0x109005d
at android.content.res.Resources.getValue(Resources.java:892)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:1869)
at android.content.res.Resources.getLayout(Resources.java:731)
at android.view.LayoutInflater.inflate(LayoutInflater.java:318)
at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:2451)
at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:2506)
at com.android.internal.policy.impl.PhoneWindow.getDecorView(PhoneWindow.java:1626)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2165)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1672)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
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:842)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Maybe there is some resource that is defined in a specific folder and is not in a less specific folder? Like, you defined a drawable X in the folder drawable-land and not in the drawable-port? You should double-check your specific folders for resources that are not in other folders
By chance do you use this resource: com.android.internal.R.layout.search_dropdown_item_icons_2line ? Since it is an internal package, maybe not all implementations contain it (or not each API level), or contain it but with different resource identifier.
Related
Apologies if this is a duplicate, I did try and find any similar answers first and failed as nothing seemed to refer to ImageView? I'm not an Android dev, but we are seeing issues with our app on older OS versions!
Stack trace:
02-20 09:56:15.885 11529-11529/com.octer E/AndroidRuntime﹕ FATAL EXCEPTION: main
android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x7f010076 a=2}
at android.content.res.Resources.loadDrawable(Resources.java:2063)
at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
at android.view.View.<init>(View.java:3364)
at android.widget.ImageView.<init>(ImageView.java:121)
at android.widget.ImageButton.<init>(ImageButton.java:87)
at com.android.internal.view.menu.ActionMenuPresenter$OverflowMenuButton.<init>(ActionMenuPresenter.java:556)
at com.android.internal.view.menu.ActionMenuPresenter.initForMenu(ActionMenuPresenter.java:99)
at com.android.internal.view.menu.MenuBuilder.addMenuPresenter(MenuBuilder.java:216)
at com.android.internal.widget.ActionBarView.configPresenters(ActionBarView.java:483)
at com.android.internal.widget.ActionBarView.setMenu(ActionBarView.java:448)
at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:405)
at com.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:775)
at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:198)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
I did discover this post on the internet but none of the solutions seems to have fixed anything. The problem is the code builds and runs on Nexus 5, but not on older model phones.
Debug resource not found website
For all those interested, our issue was resolved when removing the following parent attribute, from one of our tags:
parent="#style/Widget.AppCompat.ActionButton.Overflow"
It's a pretty horrendous stack-trace, which didn't resolve to any logical location - we managed to isolate it after many hours of (Delete, build, delete, build...etc)
<style name="OcterActionBarOverflowButton">
Hope this helps!
I fixed this error by moving my drawable from
app\src\main\res\drawable-v24
to
app\src\main\res\drawable
We've seen about 40 of these crashes in the past two days of our app release for 4.0. After reviewing crash logs, we've discovered it's existence since version 3.3 of our app. We have been unable to reproduce this in house.
Further research has indicated this problem is prevalent in other applications, but I was unable to find a resolution or an indication that Google is aware of the issue.
The crash itself happens on the setContentView(R.layout.foo) method call in onCreate()
Notes:
We limit our API to version 4 and target 15.
We've seen this on at least 2.2 - 4.0.3 on mdpi,hdpi,xhdpi phones and tablets.
User comments specify that the app crashes immediately (expected) and that the Evernote icon in the application launcher turns to the default app icon (cannot read any drawables).
The crash is not limited to one specific drawable, we have seen many different ones in the logs, however they all "seem" to be image drawables, not colors, layouts, xml files, etc...
This is not limited to 9patches, it has happened on both regular .png and .9.png
Our drawable folders look like the picture attached
We store only xml in our drawable folder
Stack trace:
android.content.res.Resources$NotFoundException: File res/drawable/ics_tab_title_unselected.xml from drawable resource ID #0x7f02016f
at android.content.res.Resources.loadDrawable(Resources.java:1697)
at android.content.res.Resources.getDrawable(Resources.java:581)
at android.view.View.setBackgroundResource(View.java:7533)
at com.evernote.ics.ActionBarTabbedTitle.a(ActionBarTabbedTitle.java:103)
at com.evernote.ics.j.a(ActivityActionBar.java:150)
at com.evernote.ics.a.c(ActionBar.java:731)
at com.evernote.ics.a.p(ActionBar.java:440)
at com.evernote.ics.a.g(ActionBar.java:423)
at com.evernote.ics.j.m(ActivityActionBar.java:68)
at com.evernote.ics.phone.SwipeableTabbedActivityAbstract.s(SwipeableTabbedActivityAbstract.java:990)
at com.evernote.ics.phone.SwipeableTabbedActivityAbstract.a(SwipeableTabbedActivityAbstract.java:662)
at com.evernote.ics.phone.SwipeableTabbedActivityAbstract.b(SwipeableTabbedActivityAbstract.java:617)
at com.evernote.ics.phone.PhoneMainActivity.b(PhoneMainActivity.java:113)
at com.evernote.ui.EvernoteFragment.a(EvernoteFragment.java:136)
at com.evernote.ui.EvernoteFragment.a(EvernoteFragment.java:132)
at com.evernote.ui.EvernoteFragment.d(EvernoteFragment.java:128)
at com.evernote.ics.phone.b.onItemClick(HomeFragment.java:1324)
at android.widget.AdapterView.performItemClick(AdapterView.java:284)
at android.widget.ListView.performItemClick(ListView.java:3513)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:1812)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3683)
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:864)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable-xhdpi-v4/tab_unselected_focus.9.png from drawable resource ID #0x7f0201e6
at android.content.res.Resources.loadDrawable(Resources.java:1714)
at android.content.res.Resources.getDrawable(Resources.java:581)
at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:162)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:787)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:728)
at android.content.res.Resources.loadDrawable(Resources.java:1694)
... 28 more
Caused by: java.io.FileNotFoundException: res/drawable-xhdpi-v4/tab_unselected_focus.9.png
at android.content.res.AssetManager.openNonAssetNative(Native Method)
at android.content.res.AssetManager.openNonAsset(AssetManager.java:406)
at android.content.res.Resources.loadDrawable(Resources.java:1706)
... 33 more
Any recommendations would greatly be appreciated.
App: https://play.google.com/store/apps/details?id=com.evernote
Thanks,
Ty
similar error solved by adding the following in the "proguard" file.
-keepclassmembers class **.R$* {
public static <fields>;
}
So I have an application which stores files in directories that I create when the user gets within a certain distance of a geographic location. Everything works fine except for when certain devices that usually use an sd card have it removed and then the app crashes when a user logs in. I tried on a droid x and I was able to replicate the crash. When I have the sd card in it works fine but when the sd card is removed I get a nullpointer exception and force close.
Heres the log dump from the market:
java.lang.RuntimeException: Unable to resume activity {graffit.cores/graffit.cores.GraffView}: java.lang.NullPointerException
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2208)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2228)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1721)
at android.app.ActivityThread.access$1500(ActivityThread.java:124)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3806)
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: java.lang.NullPointerException
at graffit.cores.GraffView.onResume(GraffView.java:1201)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
at android.app.Activity.performResume(Activity.java:3882)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2191)
... 12 more
java.lang.NullPointerException
at graffit.cores.GraffView.onResume(GraffView.java:1201)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
at android.app.Activity.performResume(Activity.java:3882)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2191)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2228)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1721)
at android.app.ActivityThread.access$1500(ActivityThread.java:124)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3806)
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)
Being that the logdump says something about failing on instrumentation Im guessing that I should catch that or look for if an sd card is available.
Im sure I can find out how to look for an sd card but how can I catch this crash and use internal storage in place of a missing sd card.
Any help would be much appreciated.
Before you do any work with the external storage, you should always call getExternalStorageState() to check whether the media is available. The media might not always be available, such as in your case. The Android Docs give an example on how to deal with this: http://developer.android.com/guide/topics/data/data-storage.html#filesExternal
The best thing to do is probably do this check in a function that returns a Boolean value on whether you can get to the external storage and then check it each time you need to get data from the card.
if (sdCardAvalableForRead())
{
// get file.
}
else
{
// show warning or message to user.
}
One of my Android users is getting a force-close when launching Google Map (MapActivity class) inside my application. He gets a MissingResourceException. He's the only one complaining so far, and he is using Vanilla Tazz phone. The Google maps application itself works well on his device. It looks like it's something specific to Vanilla Tazz. I tried to find a fix online but have not been successful. Here's the Android error log:
java.lang.ExceptionInInitializerError
at ...
at android.view.View.performClick(View.java:2449)
at android.view.View$PerformClick.run(View.java:9027)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
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: java.lang.ExceptionInInitializerError
at com.google.android.maps.MapActivity.<clinit>(MapActivity.java:295)
... 14 more
Caused by: java.util.MissingResourceException: Could not find required resource
com.android.internal.R$drawable.loading_tile_android (java.lang.NoSuchFieldException: loading_tile_android)
at com.google.android.maps.InternalR.getField(InternalR.java:65)
at com.google.android.maps.InternalR.get(InternalR.java:39)
at com.google.android.maps.InternalR.access$000(InternalR.java:28)
at com.google.android.maps.InternalR$drawable.get(InternalR.java:112)
at com.google.android.maps.InternalR$drawable.<clinit>(InternalR.java:119)
... 15 more
I would appreciate if anyone can suggest anything to fix this.
Not sure you'll find a fix for this: it sounds like the ROM was built without that resource as part of the OS image. They'll probably need a new ROM to get around that.
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 mdpi.
From the reports, it seems to be pretty random.
Turns out this is sort of normal behavior on Android upgrades.