2012-10-27 8 views
6

Mam aplikację z ponad 100 000 użytkowników. Ale na niektórych urządzeniach (~ 50) dostaję dziwny wyjątek. Ślady stosu mówią, że nie można znaleźć wyciągania.
Oto ślad stosu:

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) 

nie mam pojęcia, dlaczego to odkształcalne (jest to plik XML) nie zostanie znaleziony.
binarny plik XML jest linia nr 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" /> 

A oto plik 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> 

Czy ktoś pomysł t osolve tego problemu?

Pozdrawiamy!

+0

Czy istnieje plik 'textviewxml_joker.xml' w folderze' drawable'? – user370305

+0

Tak, plik textviewxml_joker.xml jest folderem do rysowania. – Namenlos

+0

Witam @Namenlos, mam do czynienia z podobnym problemem .. czy szczęście w tym? proszę Podziel się. –

Odpowiedz

1

Jeśli plik textviewxml_joker.xml nie jest w drawable, ale raczej w folderze drawable-*, to te kilka urządzeń, które pojawia się błąd nie może spełniać warunki do korzystania z folderu drawable-*.

Umieść go również w drawable i powinien go naprawić.

+0

Nie, plik textviewxml_joker.xml znajduje się w normalnym folderze do rysowania. – Namenlos

0

Jeśli masz wiele folderów zasobów, upewnij się, że Android odnajduje Twój wyciągalny xml dla każdej możliwej kombinacji kwalifikatorów (Providing Resources). Patrzenie na typy urządzeń, które mają ten błąd, może dać wskazówkę, gdzie szukać.

+2

Plik znajduje się w normalnym folderze drawbable. Wszystkie urządzenia muszą go tam znaleźć, czy nie? – Namenlos

1

Może się to również zdarzyć, jeśli zasób, do którego się odnosisz (pozwala nazywać go ResA) odnosi się z kolei do zasobu, który nie istnieje (pozwala wywołać go ResB). Android podniesie wyjątek ResourceNotFoundException dla ResA, chociaż to, czego naprawdę brakuje, to ResB. Takie jest życie!

W moim przypadku ResB został zdefiniowany w wartościach-swxxxdp, ale nie w wartościach. Stąd otrzymywałem ten wyjątek na telefonach, ale nie na tabletach.

Powiązane problemy