Ich verwende Studio 3.3.1 Build vom 28. Januar.
Für mich wurde die Meldung "Fehler beim Verknüpfen von Android-Ressourcen fehlgeschlagen" angezeigt, die auf eine Zeile in einer Layoutdatei mit ConstraintLayout zeigte, die bis heute ordnungsgemäß funktioniert hatte, als die einzige Änderung an meiner Gradle-Datei auf App-Ebene darin bestand, die folgenden Versionen zu aktualisieren:
android.arch.navigation:navigation-fragment
android.arch.navigation:navigation-ui
von 1.0.0-rc01
bis 1.0.0-rc02
.
Die Fehlermeldung sagte etwas darüber aus, nicht zu erkennen, layout_constraintTop_toTopOf
was natürlich albern ist, weil es seit Monaten ziemlich glücklich kompiliert wurde.
Ich bin bereits auf 28.0.3 von Build-Tools und compileSdkVersion
von 28. Ich benutze es androidx.appcompat
jetzt schon eine Weile überall (habe dieses Projekt Monate zurück zu AndroidX konvertiert).
Ich habe zuerst ein Projekt bereinigt (keine Hilfe) und den Cache / Neustart ungültig gemacht (keine Hilfe). Das betreffende Layout wurde ursprünglich mit definiert
<TextView>
, <EditText>
Und <ImageView>
Komponenten (die gut , bis heute gearbeitet hatte).
Aber nachdem ich die obigen Antworten gelesen hatte, dachte ich, dass hier möglicherweise Verwirrung herrscht, also änderte ich das Layout, um Folgendes zu verwenden:
<androidx.appcompat.widget
Versionen aller verschiedenen Komponenten. Keine Änderung - immer noch den Fehler.
Ich habe dann den <androidx.appcompat.widget.AppCompatTextView
Block gelöscht, der den Kompilierungsfehler verursacht hat. Ich habe alle Verweise darauf in den anderen Widgets geändert, um stattdessen auf "Eltern" zu verweisen. Habe ein Make gemacht. Diesmal wurde die Kompilierung fehlerfrei abgeschlossen .
Also etwas Seltsames in dieser Widget-Definition, dachte ich ... hier ist, was es war:
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/contact_firstname_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/contact_fname_label"
android:gravity="end"
android:textAppearance="@android:style/TextAppearance.Material.Small"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/contact_detail_fname"
app:layout_constraintBaseline_toBaselineOf="@+id/contact_detail_fname"/>
Ich habe dann den Block, den ich zuvor mit Strg-V ausgeschnitten hatte, wieder eingefügt und die Referenzen in den anderen Komponenten, die im Layout darauf verweisen, wieder auf diese ID geändert. Kompilierung fehlgeschlagen .
Ich habe den Block erneut ausgeschnitten und in WordPad eingefügt. Nachdem ich dann aus dem WordPad-Einfügen gelesen hatte, tippte ich es tatsächlich wieder ein (dh ich habe diesmal nicht kopiert / eingefügt) - Zeile für Zeile, um das Projekt zu bearbeiten, nachdem ich die minimale Definition eingegeben hatte, und danach wieder, wenn ich in jede neue Zeile einfügen. Jedes Mal, wenn das Projekt sauber kompiliert wurde!
Ich weiß nicht, was ich davon halten soll. Vielleicht war ursprünglich ein falsches unsichtbares Zeichen in der Datei?