我的应用程序拥有超过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)
我不知道为什么没有找到这个drawable(它是一个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>
有人有想法解决这个问题吗?
最诚挚的问候!
答案 0 :(得分:1)
如果您的textviewxml_joker.xml
文件不在drawable
中,而是在drawable-*
文件夹中,那么获得错误的少数设备可能不符合使用{{1}的条件1}}文件夹。
将它放在drawable-*
中,它应该修复它。
答案 1 :(得分:1)
如果您引用的资源(让我们称之为ResA)反过来引用缺少的资源(让我们称之为ResB),也会发生这种情况。 Android会为ResA引发ResourceNotFoundException,即使真正缺少的是ResB。这就是生活!
就我而言,ResB是在值-swxxxdp中定义的,而不是在值中定义的。因此,我在手机上获得此例外,但在平板电脑上却没有。
答案 2 :(得分:0)
如果您有多个资源文件夹,请确保Android为每个可能的限定符组合(Providing Resources)找到您的可绘制xml。查看出现此错误的设备类型可能会提示您查看的位置。