Ich werde sagen, dass ich einige Antworten auf diese Frage zu stackoverflow bereits gesehen habe, aber nur eine schnelle 'Lösung' zur Verfügung stelle. Ich möchte, wenn möglich, auch verstehen, warum das passiert (eine Antwort mit einigen Details).Kein Ressourcenbezeichner für das Attribut 'srcCompat' im Paket '....' gefunden
Nun zu der Frage: Ich habe gerade Android-Entwicklung neu gestartet, mit Android Studio 2.2. Ich habe eine iOS-App, die ich auf Android portieren möchte (das heißt, für Android neu erstellen). Ich habe mit einer Basisvorlage aus Android Studio begonnen, ein Constraint-Layout und 2 ImageViews mit 2 PNG-Dateien hinzugefügt, die ich im DRAWABLE-Ordner kopiert habe.
ohne Änderungen vorzunehmen oder was auch immer, wenn ich zu bauen versuche ich diesen Fehler:
Fehler: (11) keine Ressourcenkennung für das Attribut gefunden ‚srcCompat‘ im Paket ‚x.y.z‘. Dies geschieht für beide Bilder. Hier ist die Layout-Datei:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/lib/x.y.z"
xmlns:app2="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="x.y.z.MainActivity">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app2:srcCompat="@drawable/pngFile1"
android:id="@+id/imageView"
app2:layout_constraintBottom_toBottomOf="parent"
android:layout_marginEnd="8dp"
app2:layout_constraintRight_toRightOf="parent"
android:layout_marginBottom="8dp"
android:layout_marginRight="8dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app2:srcCompat="@drawable/pngFile2"
android:id="@+id/imageView2"
app2:layout_constraintBottom_toTopOf="@+id/imageView"
app2:layout_constraintRight_toRightOf="@+id/imageView"
android:layout_marginBottom="8dp" />
Nun, hier sind einige Dinge, die Ich mag würde verstehen, um eine richtige Antwort auf meine Frage zu haben:
einige die anderen Antworten, die ich auf SO gefunden habe, schlagen vor, den Standard zu ändern:
xmlns: app = "http://schemas.android.com/apk/res-auto"
zu:
xmlns:app="http://schemas.android.com/apk/lib/x.y.z"
Es stimmt, dass dies den Fehler aus dem Build entfernt, aber was mir seltsam erscheint (mit meinem wenig bis keine Android-Erfahrung), ist, dass Android Studio erstellt dann eine andere ähnliche Linie, wenn ich das zweite Bild hinzufügen:
xmlns:app2="http://schemas.android.com/apk/res-auto"
Und wie wir sehen können, verwendet es diese für die Bilder, also wieder die Fehler erscheinen.
Ich erinnere mich, wie vor einem Jahr hatte ich an einer App in Android Studio gearbeitet, und habe fast die gleiche Art und Weise zum Hinzufügen von Bildern/Schaltflächen mit Bildern verwendet und diese Probleme waren nicht da.
Deshalb möchte ich auch verstehen, warum das passiert und wie man es richtig beheben kann.
Vielen Dank im Voraus!
zu dieser Antwort verweise ich ein Projekt habe ich für mehr als ein Jahr gearbeitet haben und das Hinzufügen von Bildern war immer normal und in Ordnung. Kürzlich habe ich das "Constraints Layout" entdeckt, also habe ich angefangen zu verwenden, habe einige ImageViews eingefügt und dann das gleiche Problem, wie du es erwähnt hast. Der Unterschied hier ist die "srcCompat" - warum hat es sich geändert? scheint wie das Aktualisieren der App.Compat auf die neueste Version könnte das Problem zu lösen, ich habe es noch nicht getan, weil ich eine Abhängigkeit von früheren Versionen habe. –
werfen Sie einen Blick hier, es könnte Ihnen einen Hintergrund geben - wir verwenden eine Vorschauversion des Constraint-Layouts, das einige seltsame Verhaltensweisen erklären kann https://sites.google.com/a/android.com/tools/recent –