【質問】Cleanで直らないResources$NotFoundExceptionの解決策について

4,139 views
Skip to first unread message

uchitomo

unread,
Mar 12, 2012, 9:48:12 PM3/12/12
to 日本Androidの会
公開中のアプリで下記のようなクラッシュログがでました。
「android.content.res.Resources$NotFoundException:」が問題箇所だと思い、検索したところ通常はプ
ロジェクトのCleanで直るとのことでした。

自分も開発中に同様のエラーが出た場合は、Cleanで直っていたのですが、今回は公開しているアプリのため、どう対応すればいいか困っています。
ちなみに、クラッシュログが送信されたのは1回のみで、自分や社内の他の端末では問題なく動いているバージョンです。


お心当たりのあるかた、アドバイスいただけないでしょうか?

以下、エラーログです。

java.lang.RuntimeException: Unable to start activity
ComponentInfo{testapp.com/me.Testapp.android.TestappMenu}:
android.view.InflateException: Binary XML file line #45: Error
inflating class
at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
1651)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:
1667)
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:123)
at android.app.ActivityThread.main(ActivityThread.java:3691)
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.view.InflateException: Binary XML file line #45:
Error inflating class
at android.view.LayoutInflater.createView(LayoutInflater.java:518)
at
com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:
56)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:
568)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:626)
at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
at
com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:
209)
at android.app.Activity.setContentView(Activity.java:1663)
at me.Testapp.android.TestappMenu.onCreate(TestappMenu.java:118)
at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:
1047)
at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
1615)
... 11 more
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
at android.view.LayoutInflater.createView(LayoutInflater.java:505)
... 26 more
Caused by: android.content.res.Resources$NotFoundException: File res/
drawable/button_info_notice.xml from drawable resource ID #0x7f020029
at android.content.res.Resources.loadDrawable(Resources.java:1961)
at android.content.res.TypedArray.getDrawable(TypedArray.java:653)
at android.view.View.(View.java:1961)
at android.widget.ImageView.(ImageView.java:112)
at android.widget.ImageButton.(ImageButton.java:85)
at android.widget.ImageButton.(ImageButton.java:81)
... 29 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:267)
at
android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:
175)
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:1936)
... 34 more

Yusuke Nomoto

unread,
Mar 13, 2012, 8:06:59 AM3/13/12
to android-g...@googlegroups.com
out of memory が発生した場合でも上記のようなログが出力される
ことがあります。

もし、もっと上のログを確認できるのであれば、out of memory が
発生していないか確認してはどうでしょうか?

事例:
http://stackoverflow.com/questions/6669296/android-custom-button-state-selector-xml-file-causing-resourcenotfoundexception

2012年3月13日10:48 uchitomo <tomoaki...@gmail.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>

MORIHIRO

unread,
Mar 13, 2012, 8:17:47 AM3/13/12
to 日本Androidの会
NotFoundExceptionとなるのかどうか確認していませんが、
  res/drawable-mdpi/...
  res/drawable-hdpi/...
とかの解像度やOrientation毎の定義分けの中で漏れているものがあるのでは?

uchitomo

unread,
Mar 13, 2012, 9:22:47 PM3/13/12
to 日本Androidの会
アドバイスありがとうございます。

画像サイズが大きいためインフレートでOutOfMemoryが発生する可能性があると思います。
ご指摘のとおり、out of memoryが原因かもしれません。

Marketに送信されるクラッシュログのため、さらに上位のログは確認できませんが・・・、
ひとまず画像サイズの軽量化などで対応したいと思います!


> out of memory が発生した場合でも上記のようなログが出力される
> ことがあります。
>
> もし、もっと上のログを確認できるのであれば、out of memory が
> 発生していないか確認してはどうでしょうか?
>
> 事例:http://stackoverflow.com/questions/6669296/android-custom-button-stat...

uchitomo

unread,
Mar 13, 2012, 9:23:22 PM3/13/12
to 日本Androidの会

uchitomo

unread,
Mar 13, 2012, 9:25:48 PM3/13/12
to 日本Androidの会
アドバイスありがとうございます。

なるほど、解像度別対応もれなどであれば、再現できないしないのもうなずけますね。
もう一度定義を確認してみたいと思います!


On Mar 13, 9:17 pm, MORIHIRO <morihiro.s...@gmail.com> wrote:
> NotFoundExceptionとなるのかどうか確認していませんが、
>   res/drawable-mdpi/...
>   res/drawable-hdpi/...
> とかの解像度やOrientation毎の定義分けの中で漏れているものがあるのでは?
Reply all
Reply to author
Forward
0 new messages