首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android - Resources$NotFoundException

Android - Resources$NotFoundException
EN

Stack Overflow用户
提问于 2012-10-28 02:40:34
回答 3查看 2.4K关注 0票数 6

我有一个超过100.000用户的应用程序。但在某些设备(~50)上,我得到了一个奇怪的例外。堆栈跟踪说,有一个可绘制的没有找到。

下面是堆栈跟踪:

代码语言:javascript
复制
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行是:

代码语言:javascript
复制
<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文件:

代码语言:javascript
复制
<?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>

有没有人有办法解决这个问题?

诚挚的问候!

EN

回答 3

Stack Overflow用户

发布于 2012-10-28 02:51:14

如果您的textviewxml_joker.xml文件不在drawable中,而是在drawable-*文件夹中,那么出现错误的少数设备可能不满足使用drawable-*文件夹的条件。

把它也放在drawable中,它应该可以修复它。

票数 1
EN

Stack Overflow用户

发布于 2014-04-15 17:08:34

如果您引用的资源(让我们称其为ResA)反过来又引用了一个缺失的资源(让我们称其为ResB),也可能发生这种情况。安卓将提高ResA的ResourceNotFoundException,尽管它真正缺少的是ResB。这就是生活!

在我的例子中,ResB是在values-swxxxdp中定义的,而不是在values中定义的。因此,我在手机上得到了这个例外,但在平板电脑上却没有。

票数 1
EN

Stack Overflow用户

发布于 2012-10-28 02:52:44

如果您有多个资源文件夹,请确保Android为每个可能的限定符组合(Providing Resources)找到您的可绘制xml。查看出现此错误的设备类型可能会给您提供一个在哪里查找的提示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13103058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档