Używam Studio 3.3.1 Build od 28 stycznia.
U mnie otrzymywałem komunikat „błąd łączenia zasobów systemu Android nie powiódł się” wskazujący na linię w pliku układu używającą ConstraintLayout, która działała poprawnie do dzisiaj, kiedy jedyną zmianą w moim pliku ocen na poziomie aplikacji była aktualizacja wersji:
android.arch.navigation:navigation-fragment
android.arch.navigation:navigation-ui
od 1.0.0-rc01
do 1.0.0-rc02
.
Komunikat o błędzie mówił coś o nierozpoznaniu, layout_constraintTop_toTopOf
co oczywiście jest głupie, ponieważ kompilował się szczęśliwie od miesięcy.
Jestem już na 28.0.3 narzędzi do kompilacji i compileSdkVersion
28. Używam androidx.appcompat
wszędzie już od jakiegoś czasu (przekonwertowałem ten projekt kilka miesięcy z powrotem na androidx).
Najpierw przeszedłem przez projekt czysty (bez pomocy) i unieważniający pamięć podręczną / restart (bez pomocy). Omawiany układ został pierwotnie zdefiniowany za pomocą
<TextView>
, <EditText>
i<ImageView>
elementy (które zostały grzywny pracujący do dziś).
Ale po przeczytaniu powyższych odpowiedzi pomyślałem, że może w jakiś sposób spowodowało to zamieszanie, więc zmieniłem układ, aby użyć:
<androidx.appcompat.widget
wersje wszystkich różnych komponentów. Bez zmian - nadal występuje błąd.
Następnie usunąłem <androidx.appcompat.widget.AppCompatTextView
blok, który powodował błąd kompilacji. Zmieniłem wszystkie odniesienia do niego w innych widżetach, aby zamiast tego odnosiły się do „rodzica”. Zrobiłem. Tym razem kompilacja zakończyła się bez błędów .
Więc pomyślałem, że coś dziwnego w tej definicji widżetu ... oto co to było:
<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"/>
Następnie wkleiłem blok, który wcześniej wyciąłem za pomocą Ctrl-V i zmieniłem odniesienia z powrotem do tego identyfikatora w innych komponentach, które odnoszą się do niego w układzie. Kompilacja nie powiodła się .
Ponownie wyciąłem blok i wkleiłem go do programu WordPad. Następnie czytając z pasty WordPad, faktycznie wpisałem go z powrotem (tj. Tym razem nie kopiowałem / wklejałem) - wiersz po wierszu, robiąc make w projekcie po wpisaniu minimalnej definicji, a następnie ponownie, gdy umieścić w każdej nowej linii.Za każdym razem projekt skompilowany czysto!
Nie wiem, co o tym sądzić. Być może pierwotnie w pliku znajdowała się jakaś fałszywa niewidzialna postać?