2012-05-17 4 views
9

4.0のアプリリリースの過去2日間で約40件のクラッシュが発生しました。クラッシュログを確認した後、アプリのバージョン3.3以降にクラッシュログが存在することが判明しました。これを家で再現することはできませんでした。FileNotFoundException:Playストアのres/drawable-xhdpi-v4/foo.pngクラッシュログのみ

さらなる調査によれば、この問題は他のアプリケーションでも発生していますが、Googleがこの問題を認識しているという解決策や兆候を見つけることができませんでした。

自体がsetContentViewに起こるクラッシュのonCreate中(R.layout.foo)メソッドの呼び出し()

注:

  • 我々は、バージョン4に私たちのAPIを制限し、ターゲット15
  • mdpi、hdpi、xhdpiの携帯電話とタブレットで少なくとも2.2 - 4.0.3でこれを見てきました。
  • ユーザーのコメントは、アプリケーションが即座にクラッシュし(想定される)、アプリケーションランチャーのEvernoteアイコンが既定のアプリケーションアイコンに変わることを指定します(ドロアブルを読み取ることはできません)。
  • クラッシュは特定のドロウアブルに限定されず、ログにはさまざまなものがありますが、それらはすべて、画像のドロワブルではなく、色、レイアウト、xmlファイルなどであるように見えます。
  • 9patchesに限定されるものではなく、それは両方の定期.PNGに起こったと私たちは描画可能なフォルダにのみ、XMLを格納しDrawables

    当社の描画可能なフォルダ

  • は、添付画像のように見える.9.pngた

スタックトレース:

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

おかげで、 "ProGuardの" ファイルに次のように追加することで解決

のTy

+0

「Evernoteアイコンがデフォルトのアプリアイコンに変わる(ドロアブルを読むことはできません)」 - これについてもう少し詳しく説明できますか?ランチャーアイコンがデフォルトのアプリアイコンであることを意味しますか?これは、これらのスタックトレースの1つを取得するたびに発生するように見えますか、それとも別の独立した症状ですか? – CommonsWare

+0

ユーザーのコメントは、アプリ自体のランチャーアイコンがデフォルトアイコン(緑色のロボット)に変わったことを示しました。 – tsmith

+0

スタックトレースは、ユーザーがアプリケーションを起動し、setContentViewがエントリポイントであるアクティビティで呼び出されたときに発生します。私たちはまだそれを体験しているユーザーとは接触していないので、分析、マーケットクラッシュ、クラッシュに関するユーザーのコメントから導き出しています。 – tsmith

答えて

0

同様のエラー。

-keepclassmembers class **.R$* { 
    public static <fields>; 
} 
関連する問題