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>
Tu dois changer
Android:background="@layout/activity_main"
à
Android:background="@drawable/yourImageName"
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!
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"
Ceci est faux Android:background="@layout/activity_main"
devrait être
Android:background="@color/backgroundColor"
ou
Android:background="@drawable/backgroundimg"
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:
color.xml
.Refactor
> Move
.-v21
.Maintenant, mon "ancien" émulateur était capable de lire le fichier.
J'espère que ça aide ..
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é!