6

私は 100.000 人以上のユーザーを持つアプリを持っています。しかし、一部のデバイス (~50) では、奇妙な例外が発生します。スタック トレースは、ドローアブルが見つからないことを示しています。
スタック トレースは次のとおりです。

java.lang.RuntimeException: Unable to start activity ComponentInfo{mindmApp.the.big.bang.theory.quiz/mindmApp.the.big.bang.theory.quiz.GameNormalActivity}: android.view.InflateException: Binary XML file line #237: Error inflating class 
...
Caused by: android.view.InflateException: Binary XML file line #237: Error inflating class 
at android.view.LayoutInflater.createView(LayoutInflater.java:606)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:653)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678)
...
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:586)
... 28 more
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/textviewxml_joker.xml from drawable resource ID #0x7f02003d
at android.content.res.Resources.loadDrawable(Resources.java:1956)
at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
at android.view.View.(View.java:2841)
at android.widget.TextView.(TextView.java:580)
at android.widget.TextView.(TextView.java:573)

このドローアブル (xml ファイル) が見つからない理由がわかりません。
バイナリ XML ファイルの 237 行目は次のとおりです。

<TextView
                    android:id="@+id/textViewSkip"
                    android:layout_width="0px"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="4dp"
                    android:layout_weight="1"
                    android:background="@drawable/textviewxml_joker"
                    android:gravity="center"
                    android:text="@string/tvSkip"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="@color/color_textview"
                    android:textSize="22sp" />

textviewxml_joker.xml ファイルは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:drawable="@drawable/textview_joker_pressed"
    android:state_pressed="true"/>
<item android:drawable="@drawable/textview_joker"/>
</selector>

この問題を解決するアイデアはありますか?

よろしくお願いします!

4

3 に答える 3

1

ファイルtextviewxml_joker.xmlがではなくdrawableフォルダdrawable-*にある場合、エラーが発生するいくつかのデバイスは、drawable-*フォルダを使用するための条件を満たしていない可能性があります。

それも入れてください、drawableそしてそれはそれを修正するはずです。

于 2012-10-27T18:51:13.730 に答える
1

これは、参照しているリソース (ResA と呼びましょう) が、欠落しているリソース (ResB と呼びましょう) を参照している場合にも発生する可能性があります。本当に欠けているのは ResB ですが、Android は ResA の ResourceNotFoundException を発生させます。それが人生だ!

私の場合、ResB は values-swxxxdp で定義されていましたが、values では定義されていませんでした。したがって、電話ではこの例外が発生しましたが、タブレットでは発生しませんでした。

于 2014-04-15T09:08:34.040 に答える
0

複数のリソース フォルダーがある場合は、可能性のあるすべての修飾子の組み合わせに対して Android が描画可能な xml を検出するようにします (リソースの提供)。このエラーが発生しているデバイスの種類を調べると、どこを見ればよいかのヒントが得られる場合があります。

于 2012-10-27T18:52:44.380 に答える