Ich bin neu in Android.
Ich habe gerade ein neues Layout mit einer Textleiste und 2 Schaltflächen erstellt, aber es hat nicht funktioniert. Ich poste den Stack-Trace und meine relative Layout-Datei. Ich habe dort die gleiche Frage gesehen, die besagt, die Zeichengröße zu verringern. Aber es half in meinem Fall nicht, oder ich habe jetzt nicht viel darüber nachgedacht, wie ich es verringern könnte ... Hier ein paar meiner Stack-Spuren:
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)
und das ist die XML-Datei von layout:
<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>
Du musst dich ändern
Android:background="@layout/activity_main"
zu
Android:background="@drawable/yourImageName"
Manchmal kann dieser Fehler auch auftreten, wenn Sie ein großes Bild verwenden, das tatsächlich zu groß ist und zu einem Speicherfehler führt und Ihre App zum Absturz bringt. Wenn Sie Hintergrundbilder oder große Assets verwenden, stellen Sie sicher, dass diese vorhanden sind und nicht zu groß sind. Dann werden Sie im Regen singen!
diese Zeile zeigt die erste Zeile des Layouts an:
Android.view.InflateException: Binary XML file line #1: Error inflating class
und in der ersten Zeile gibt es Relative Layoutdeklaration:
Der Fehler ist also auf Android:background
, und Dies ist nicht der richtige Weg, um den Hintergrund des Layouts einzustellen:
Android:background="@layout/activity_main"
es sollte ein farb- oder zeichnungsfähiges Bild sein
Android:background="@color/backgroundColor"
oder Android:background="#012345"
oder
Android:background="@drawable/backgroundimg"
Dies ist falsch Android:background="@layout/activity_main"
sollte sein
Android:background="@color/backgroundColor"
oder
Android:background="@drawable/backgroundimg"
In meinem Fall wurde der Ort meines color.xml
geändert.
Als ich es von einem anderen Projekt kopierte und in das neue Projekt einfügte, platzierte es in Android v21
, was bedeutet, dass mein Emulator (v19) die Ressourcendatei color.xml
nicht erreichen konnte.
Ich habe folgendes getan, um das Problem zu beheben:
color.xml
.Refactor
> Move
.-v21
entfernt.Nun konnte mein "alter" Emulator die Datei lesen.
Ich hoffe, es hilft..
Ich hatte das gleiche Problem - aber bei einer Aktivität, die kein Hintergrundbild hatte.
Ich habe herausgefunden, dass der GUI-Editor (bei Verwendung von Eclipse - ich kenne Android Studio nicht) manchmal ohne Grund die fehlerhafte Eigenschaft hinzufügt:
Android:background="@layout/activity_main"
Ich bin nicht sicher, warum der Editor das tut - vielleicht handelt es sich um einen Fehler oder einfach um einen Verwendungsfehler.
Wenn die Aktivität jedoch kein Hintergrundbild hat, muss die gesamte Eigenschaft einfach gelöscht werden!