2014-09-06 9 views
7

Quando si tenta di eseguire la mia applicazione si blocca e ottengo il seguente in logcat:InflateException: Binary linea di file XML # 22: errore di classe di gonfiaggio <unknown>

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.application/com.example.application.StartActivity}: android.view.InflateException: Binary XML file line #22: Error inflating class <unknown> 

.....

Caused by: android.view.InflateException: Binary XML file line #22: Error inflating class <unknown> 

.....

Caused by: java.lang.reflect.InvocationTargetException 

.....

Caused by: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x1 

l'errore include anche ad una linea nel mio codice in cui ho impostato la visualizzazione del contenuto

questo è il file XML I Riferimento alla

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center_horizontal" 
    android:orientation="vertical" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin"> 



      <RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="200dp"> 

       <TextView 
        android:id="@+id/summonerName" 
        android:layout_width="439dp" 
        android:layout_height="wrap_content" 
        android:layout_centerVertical="true" 
        android:gravity="center_vertical" 
        android:hint="@string/prompt_email" 
        android:textSize="?android:textAppearanceLarge" 
        android:singleLine="true" /> 

       <Spinner 
        android:id="@+id/region" 
        android:layout_width="83dp" 
        android:layout_height="wrap_content" 
        android:layout_centerVertical="true" 
        android:layout_toRightOf="@id/summonerName" 
        android:layout_alignParentRight="true" 
        /> 

      <Button 
       android:id="@+id/btnSearch" 
       style="?android:textAppearanceSmall" 
       android:layout_width="200dp" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="16dp" 
       android:background="#777" 
       android:layout_alignParentBottom="true" 
       android:layout_alignParentRight="true" 
       android:text="@string/action_sign_in" 
       android:textColor="#FFF" 
       android:textStyle="bold" /> 

      </RelativeLayout> 
     </LinearLayout> 


<ListView 
    android:id="@+id/left_drawer" 
    android:layout_width="240dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:background="#f3f3f4" 
    android:choiceMode="singleChoice" 
    android:divider="#dadadc" 
    android:dividerHeight="1dp"/> 

non ho idea di che cosa fare con questi errori. Qualcuno può aiutarmi sulla strada giusta?

+1

È possibile modificare la domanda e aggiungere il contenuto del file xml e del file a cui si fa riferimento (se presente) nel file xml? –

+0

è sufficiente verificare se sono stati aggiunti i valori nell'xml per queste cartelle 'values-sw600dp',' values-sw720dp-land', 'values'. controlla questo [post] (http://stackoverflow.com/a/18844713/3326331) che afferma la stessa eccezione. –

risposta

3

L'ho capito leggendo la risposta this. Un drawable che ho aggiunto ha causato l'eccezione.

+0

E se ti dicessi che il link è morto? Si prega di sapere come usare SO la prossima volta. –

2

Tutti i tuoi @dimens devono essere definiti

ad esempio

<resources> 
    <!-- Default margins, per the Android Design guidelines. --> 
    <dimen name="activity_horizontal_margin">16dp</dimen> 
    <dimen name="activity_vertical_margin">16dp</dimen> 
</resources> 

Potreste aver aggiunto quelli per esempio queste cartelle

  • valori-sw600dp
  • valori-sw600dp- terra
  • valori-v19
  • valori-xxhdpi

o qualsiasi altra cartella, naturalmente, dove potevano appartenere
ma non dimenticare che coloro che devono anche essere in

  • valori

Hanno da definire anche lì

se questo non è il problema prova a creare una cartella valore-XXXX per ogni layout-XXXX fol der avete

  • layout xhdpi
  • valori-xhdpi

E

  • layout grande
  • valori-grandi

per esempio

+0

Tutti i valori di dimen che utilizzo nel file xml che ho pubblicato sono dichiarati –

+0

@MeneerVenus Sei al 100% che viene dichiarato eveywhere dove dovrebbero? –

+0

Sì, i valori si trovano nel file dimens.xml all'interno della cartella dei valori. –

0

Ho avuto lo stesso problema,

problema era che ho usato un DrawerLayout e che il mio minSDK è stato fissato al di sotto di 14. cambiamento che ha risolto il problema. I pacchetti di supporto Android e appcompat per qualche motivo ti consentono di utilizzare DrawerLayout, ma mancano le definizioni di DrawerLayout per i layout.

cambiando il minSDK a 14 risolto il problema.

0

Potrebbe essere la causa dell'utilizzo di risorse estraibili ad alta risoluzione. Risoluzione risoluzioni file disegnabili.