Nach der Migration von Eclipse auf die neue Version von Android Studio 3.2, API 28, wird im Layout meiner App die folgende Fehlermeldung angezeigt:
Das Layout im Layout enthält keine Deklaration im Basislayoutordner. Dies kann zu Abstürzen führen, wenn die Ressource in einer Konfiguration abgefragt wird, die nicht mit diesem Qualifikationsmerkmal übereinstimmt
Eines der Layouts, bei denen ich diesen Fehler erhalte, ist:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@null" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top|center_horizontal"
android:adjustViewBounds="true"
android:contentDescription="@string/hello_world"
android:src="@drawable/loading_top" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:adjustViewBounds="true"
android:contentDescription="@string/hello_world"
android:src="@drawable/loading_bottom" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:contentDescription="@string/hello_world"
android:background="@color/white"
android:layout_marginBottom="5dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:src="@drawable/loading_logo" />
<ImageView
android:id="@+id/loading"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_gravity="center|center_vertical"
android:layout_marginBottom="0dp"
android:layout_marginTop="0dp"
android:contentDescription="@string/hello_world"
android:scaleType="fitXY"
android:src="@null" />
</FrameLayout>
</LinearLayout>
Ich erhalte den Fehler in der ersten Zeile des ersten LinearLayout.
Weiß jemand, wie man diesen Fehler löst?
Danke dir
UPDATE: Es scheint ein Codierungsproblem zu sein. Ich hatte die XML-Dateien mit Windows Explorer in den Ordner kopiert. Nach dem Löschen und Kopieren der Dateien in Android Studio wurde das Problem behoben.
android
xml
android-studio
L Kemp
quelle
quelle
Antworten:
In meinem Fall hat das Schließen und erneute Öffnen von Android Studio das Problem gelöst. Das Projekt neu zu erstellen oder den Cache zu leeren, hat nicht geholfen.
quelle
Sie können dies auch versuchen:
Datei => Caches ungültig machen / Neustart => Ungültig machen und neu starten.
quelle
In meinem Fall war es die Verwendung von Großbuchstaben im Dateinamen. Ich habe alles in Kleinbuchstaben gelassen und es wurde behoben.
quelle
Wenn Sie Ihr Layout erstellen: layout-sw320dp layout-sw480dp layout-sw600dp layout-sw720dp
Sie sollten standardmäßig das folgende Layout hinzufügen:
quelle
In meinem Fall gelöst ich , dass mit dieser :
Das Android sagt mir diesen ID-Fehler: MissingDefaultResource als Dokumentation sagt:
Dies ist jedoch die einfache Lösung, da Sie die Ressource in Android verpassen.
Ich löse dies mit der Dateisystemoption . Wenn Android Sie über fehlende Ressourcen informiert, bedeutet dies, dass etwas fehlt, und Sie sollten dies wieder auffüllen.
Sie sollten zu \ app \ src \ main \ res gehen
Vielleicht: Klicken Sie mit der rechten Maustaste in den fehlenden Ordner der Datei, zeigen Sie ihn in Exporer an und kehren Sie zu \ app \ src \ main \ res zurück
Du solltest finden
Sie sollten herausfinden, wo die Dateien fehlen. In meinem Fall fehlt das in / layout
quelle
Ich habe diesen Fehler beim Verschieben von Layoutdateien zwischen Gradle-Modulen erhalten . Ich musste nicht so weit gehen , Caches ungültig zu machen, da es sich beim Neustart
Android Studio
und Bereinigen des Projekts von selbst auflöste . Es scheint wahrscheinlich ein IDE-Fehler zu sein .quelle
Ich habe es gerade getan
Build > Clean Project
quelle
In meinem Fall wurde dieses Problem durch Großbuchstaben verursacht. Falsche Zeichen wie "-" können ebenfalls das Problem verursachen. Ich habe den Namen von
Activity_disease.xml
in geändertactivity_disease.xml
und das Problem behoben.quelle
Für mich hat nichts so gut funktioniert wie das Projekt neu zu erstellen oder den Cache ungültig zu machen. In meinem Fall hat das Schließen und erneute Öffnen von Android Studio das Problem gelöst .
quelle
In meinem Fall hat Google anscheinend unterschiedliche Namen zwischen verschiedenen Layouts erwartet (oder zumindest akzeptiert). Ich hatte ein
time_dialog.xml
und eintime_dialog_landscape.xml
. Letzterestime_dialog.xml
umbenennen, um das Problem zu beheben.quelle
Ich habe dieses Problem gelöst, indem ich nur das Projekt mit gradle synchronisiert habe
quelle
Für mich haben die folgenden Schritte funktioniert:
quelle
strings.xml
habe, stimme ich diesem zuDieses Problem scheint aufzutreten, weil Studio oder Compiler die Ressourcendatei nicht im Basislayoutordner finden können. Um das Problem zu lösen, müssen Sie die Datei möglicherweise in verschiedenen Layoutordnern erstellen. Wenn Sie Layoutordner v21, v25 usw. zum Entwerfen von Layouts für verschiedene Zielgeräte verwenden, müssen Sie möglicherweise auch Ihre Ressourcendateien dort ablegen.
quelle
In meinem Fall wurde diese Warnung aufgrund eines im Wertnamen verwendeten "falschen" Zeichens (Punkts) angezeigt:
Das Entfernen von Punkten (Rechtsklick auf einen Namen, dann Refactor-Rename in Android Studio) hat das Problem behoben.
quelle
Spät zur Party, aber mein Fall ist anders als oben.
Ich habe die Ressource gerade umbenannt und sie hat funktioniert.
Eigentlich war mein Ressourcenname ic_menu_black_24dp.xml, also widersprach er der Menüressource des Android.
quelle
Was für mich funktioniert hat, ist das ID-Attribut zu entfernen
aus der Layout-Ressource.
quelle
Was hat es für mich gelöst:
Klicken Sie in Android Studio mit der rechten Maustaste auf den Dateinamen im Layoutverzeichnis und wählen Sie Code neu formatieren, ohne dass im nächsten Bildschirm ein spezielles Kontrollkästchen aktiviert ist.
Ich bin mir nicht sicher, was genau unter der Haube hier vor sich geht, aber das hat funktioniert.
quelle
Ich hatte ein Problem nach dem Kopieren / Einfügen von Code in eine XML-Layoutdatei, aber ich habe es behoben, indem ich die Datei einfach manuell erstellt habe. Sehr seltsam, da der Code genau der gleiche war, aber irgendwie wurde dieses Problem behoben. Ich habe versucht, neu zu starten und die Korrektur "Datei => Caches ungültig machen / Neustart => Ungültig machen und neu starten" durchzuführen, aber das Problem wurde nur durch manuelles Neuerstellen der Datei behoben.
quelle
Beachten Sie, dass Sie in diesem Fall denselben Hauptlayoutordner verwenden müssen , wenn Sie verschiedene Layoutversionen wie ( Groß / Klein / Nornal ) verwenden. so
quelle
(1) Löschen Sie das ursprüngliche Layout.
(2) Fügen Sie das Layout erneut hinzu.
Schritt 1
Schritt 2
quelle
Das Bereinigen oder Neuerstellen des Projekts reicht aus, um das Layout zu indizieren
quelle