FileNotFoundException:仅限Play商店崩溃日志中的res / drawable-xhdpi-v4 / foo.png

时间:2012-05-17 21:59:44

标签: android

我们在应用程序发布4.0版的过去两天中看到了大约40起这些崩溃事件。在查看崩溃日志后,我们发现它自我们的应用程序版本3.3起存在。我们无法在内部重现这一点。

进一步的研究表明这个问题在其他应用程序中很普遍,但我无法找到解决方案或表明谷歌已经意识到这个问题。

崩溃本身发生在onCreate()

中的setContentView(R.layout.foo)方法调用上

注意:

  • 我们将API限制为版本4和目标15。
  • 我们已经在mdpi,hdpi,xhdpi手机和平板电脑上看到过至少2.2 - 4.0.3。
  • 用户评论指定应用程序立即崩溃(预期)并且应用程序启动器中的Evernote图标变为默认应用程序图标(无法读取任何可绘制的内容)。
  • 崩溃不仅限于一个特定的drawable,我们在日志中看到了许多不同的,但它们“看起来”都是图像绘制,而不是颜色,布局,xml文件等......
  • 这不仅限于9个补丁,它发生在常规.png和.9.png

我们的可绘制文件夹看起来像附加的图片Drawables

  • 我们只将xml存储在drawable文件夹中

堆栈追踪:

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

非常感谢任何建议。

应用:https://play.google.com/store/apps/details?id=com.evernote

谢谢,

1 个答案:

答案 0 :(得分:0)

通过在" proguard"中添加以下内容解决了类似的错误文件。

-keepclassmembers class **.R$* {
    public static <fields>;
}