web-dev-qa-db-fra.com

android.view.inflateexception fichier de fichier XML binaire # 1 erreur lors de l'inflatable de classe Android.widget.relativeLayout

Je suis nouveau dans Android.
Je viens de faire une nouvelle mise en page avec une barre de texte et 2 boutons mais cela ne fonctionnait pas, je poste la trace de la pile et mon fichier de mise en page relatif, vous avez une idée à ce sujet? J'ai vu la même question là-bas qui dit de réduire la taille pouvant être tirée. Mais cela n'a pas aidé dans mon cas ou je ne savais pas trop comment le diminuer .. Voici une partie de ma trace de pile:

  D/AndroidRuntime(1192): Shutting down VM
W/dalvikvm(1192): threadid=1: thread exiting with uncaught exception (group=0xb60cc4f0)
E/AndroidRuntime(1192): FATAL EXCEPTION: main
E/AndroidRuntime(1192): Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hellomissworld/com.example.hellomissworld.MainActivity}: Android.view.InflateException: Binary XML file line #1: Error inflating class Android.widget.RelativeLayout
E/AndroidRuntime(1192):at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:1647)
12-24 18:58:31.451: E/AndroidRuntime(1192):     at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:1663)
12-24 18:58:31.451: E/AndroidRuntime(1192):     at Android.app.ActivityThread.access$1500(ActivityThread.Java:117)
12-24 18:58:31.451: E/AndroidRuntime(1192):     at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:931)

et c’est le fichier XML de lay out:

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="wrap_content"
    Android:layout_height="match_parent"
    Android:background="@layout/activity_main"
    Android:focusable="false"
    Android:paddingBottom="@dimen/activity_vertical_margin"
    Android:paddingLeft="@dimen/activity_horizontal_margin"
    Android:paddingRight="@dimen/activity_horizontal_margin"
    Android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <EditText
        Android:id="@+id/editText1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentLeft="true"
        Android:layout_alignParentRight="true"
        Android:layout_marginTop="24dp"
        Android:ems="10"
        Android:inputType="text" >

        <requestFocus />
    </EditText>

    <TextView
        Android:id="@+id/textView1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignLeft="@+id/editText1"
        Android:layout_alignParentTop="true"
        Android:text="@string/typehere"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        Android:id="@+id/button2"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignRight="@+id/editText1"
        Android:layout_below="@+id/editText1"
        Android:text="@string/ok" />

    <Button
        Android:id="@+id/button1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_below="@+id/editText1"
        Android:layout_toLeftOf="@+id/button2"
        Android:text="@string/cancel" />

</RelativeLayout>
16
jazz b

Tu dois changer

Android:background="@layout/activity_main"

à

Android:background="@drawable/yourImageName"
14
Piyush

Parfois, cette erreur peut également apparaître lorsque vous utilisez une grande image trop grande, ce qui entraîne une erreur de mémoire et bloque votre application. Si vous utilisez des images d'arrière-plan ou des ressources de grande taille, assurez-vous qu'elles existent et qu'elles ne sont pas trop grandes. Vous chanterez alors sous la pluie!

10
ColossalChris

cette ligne indique la première ligne de la mise en page:

Android.view.InflateException: Binary XML file line #1: Error inflating class 

et à la première ligne il y a une déclaration de mise en page relative:

Donc, l'erreur est sur Android:background, et ce n'est pas la bonne façon de définir l'arrière-plan de la mise en page:

Android:background="@layout/activity_main"

il devrait s'agir d'une image couleur ou dessinable

Android:background="@color/backgroundColor" ou Android:background="#012345" 

ou

Android:background="@drawable/backgroundimg"
9
Hamad

Ceci est faux Android:background="@layout/activity_main" devrait être 

Android:background="@color/backgroundColor" 

ou 

Android:background="@drawable/backgroundimg"
3

Ce qui a résolu le problème dans mon cas était de changer l'emplacement de mon color.xml 

Lorsque je l'ai copié d'un de mes projets et que je l'ai collé dans le nouveau projet, Android Studio l'a placé dans le dossier v21, ce qui signifie que mon émulateur (v19) n'a pas pu atteindre le fichier de ressources color.xml.

J'ai fait ce qui suit pour résoudre ce problème:

  1. Cliquez avec le bouton droit sur color.xml.
  2. Sélectionnez Refactor> Move.
  3. Dans la boîte de dialogue ouverte, supprimez le suffixe -v21.

Maintenant, mon "ancien" émulateur était capable de lire le fichier.

J'espère que ça aide ..

2
Barakuda

J'ai eu le même problème - mais dans une activité qui n'avait pas d'image de fond.

J'ai découvert que l'éditeur d'interface graphique (lors de l'utilisation d'Eclipse - je ne connais pas Android Studio) ajoute parfois la propriété buggy sans aucune raison:

Android:background="@layout/activity_main"

Je ne sais pas pourquoi l'éditeur le fait - peut-être est-ce un bug ou simplement une erreur d'utilisation.

Cependant, si l'activité n'a pas d'image de fond, il faut tout simplement supprimer la propriété!

0
Martin Rosenau