2012-10-27 5 views
6

Ich habe eine App mit über 100.000 Nutzer. Aber auf einigen Geräten (~ 50) bekomme ich eine seltsame Ausnahme. Die Stack-Traces sagen, dass ein Drawable nicht gefunden wurde.
Hier ist der Stack-Trace:

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) 

Ich habe keine Ahnung, warum dieses ziehbar (es ist eine XML-Datei) nicht gefunden wird.
Die binäre XML-Datei Zeile # 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" /> 

Und hier ist die textviewxml_joker.xml Datei:

<?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> 

jemand eine Idee haben, t osolve dieses Problem?

Mit freundlichen Grüßen!

+0

Ist das 'textviewxml_joker.xml' Datei in' drawable' Ordner vorhanden? – user370305

+0

Ja, die Datei textviewxml_joker.xml ist der ziehbare Ordner. – Namenlos

+0

Hallo @Namenlos, ich bin mit einem ähnlichen Problem konfrontiert ... Glück dabei? bitte teilen. –

Antwort

1

Wenn Ihre textviewxml_joker.xml Datei nicht in drawable ist, sondern in einem drawable-* Ordner, dann die wenige Geräte, die den Fehler möglicherweise nicht die Bedingungen erfüllen, die drawable-* Ordner zu verwenden.

es Setzen Sie auch in drawable und es sollte es beheben.

+0

Nein, die Datei textviewxml_joker.xml befindet sich im normalen Draw-Ordner. – Namenlos

0

Wenn Sie mehrere Ressourcenordner haben, stellen Sie sicher, dass Android Ihr ziehbar xml für jede mögliche Kombination Qualifier findet (Providing Resources). Wenn Sie sich die Gerätetypen ansehen, die diesen Fehler enthalten, erhalten Sie möglicherweise einen Hinweis, wo Sie suchen sollten.

+2

Die Datei befindet sich im normalen Drawbable-Ordner. Alle Geräte müssen es dort finden oder nicht? – Namenlos

1

Dies könnte auch passieren, wenn die Ressource, die Sie sich beziehen (nennen wir es können ResA) in Turn auf eine Ressource beziehen, die (nennen wir es RESB) fehlt. Android wird die ResponseNotFoundException für ResA auslösen, obwohl eigentlich ResB fehlt. So ist das Leben!

In meinem Fall RESB wurde in dem Werte-swxxxdp aber nicht in Werten definiert. Daher bekam ich diese Ausnahme auf Telefonen, aber nicht auf Tablets.