Błąd - nie udało się połączyć zasobów Androida (demon AAPT2 27.0.3 # 0)

96

Mam ten błąd

Próbuję ponownie zainstalować Android Studio i usunąć folder .gradle, jakieś rozwiązanie?

    Error:FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugResources'.
> Android resource linking failed (AAPT2 27.0.3 Daemon #0)
  Command: C:\javasdk\build-tools\27.0.3\aapt2.exe link -I\
          C:\javasdk\platforms\android-26\android.jar\
          --manifest\



  C:\Users\Jalal D\.gradle\caches\transforms-1\files-1.1\fonticon-0.1.8.aar\2b09376fc14469ba65fc8e4d85c2eed1\res\values\values.xml:19:5-25:25: AAPT: error: resource android:attr/fontVariationSettings not found.

  C:\Users\Jalal D\.gradle\caches\transforms-1\files-1.1\fonticon-0.1.8.aar\2b09376fc14469ba65fc8e4d85c2eed1\res\values\values.xml:19:5-25:25: AAPT: error: resource android:attr/ttcIndex not found.

  error: failed linking references.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 3s
Mahmoud D. Alghraibeh
źródło

Odpowiedzi:

51

Miał dokładnie ten sam problem. Rozwiązać go w następujący sposób: Wyszukiwanie i zastępowanie com.android.support:support-v4:+ z com.android.support:support-v4:27.1.0 w katalogu platforma / android.

Musiałem również dodać następujący kod do plików platform / android / app / build.gradle i platform / android / build.gradle:

configurations.all {
resolutionStrategy {
    force 'com.android.support:support-v4:27.1.0'
}}

Zmieniono odpowiedź „Gdzie jest to ustawienie com.android.support:support-v4:+?” ...

Ustawienie prawdopodobnie (w tym przypadku) będzie znajdować się w jednym z plików .gradle wtyczki w katalogu platforma / android /, na przykład w moim przypadku była to wtyczka starter-barcodescanner, więc po prostu przejrzyj wszystkie pliki .gradle wtyczek:

enter image description here

Dokładnie sprawdź plik platform / android / build.gradle.

Mam nadzieję że to pomoże.

RFourie
źródło
Dziękuję, że nas uratowałeś!
Ramesh Murugesan
Dzięki, oszczędzasz mój dzień! Miałem dni z tym problemem, który wyszedł mi z nocy, nie wiedząc, jak moja aplikacja przestała działać
LMoreno10
Nie mogę uwierzyć, że rozwiązanie było tak proste, wystarczyło skopiować wklej do tych dwóch plików gradle! Klaśnięcia !!
Shyam
Znalazłem jedną z przyczyn tego problemu Kiedy używamy dowolnego ciągu, stylu, koloru itp. W manifeście, którego nie ma w wartościach (string.xml, style.xml, color.xml itp.), Wtedy ten typ błędu występuje .
Vishnu Magar
Ta poprawka działa również, gdy zależności są aktualizowane w Android Studio. Samo IDE wskaże w plikach, że te wersje muszą pasować do skompilowanego
SDK
95

Android zasób łączenie nie powiodło się błąd może się pojawić, jeśli masz błąd w którymkolwiek z zasobów XML. W moim przypadku dwukrotnie korzystałem z następującego wiersza w jednym z moich rysunków XML w folderze do rysowania:

<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>

Usunąłem zduplikowaną linię i błąd zniknął. Błąd był nieco mylący:

Łączenie zasobów systemu Android nie powiodło się Wynik: / Users / johndoe / Desktop / myapp / app / src / main / res / layout / activity_main .xml: 2: error: resource drawable / bg_main (aka com.example.myproject: drawable / bg_main) not znaleziony.

Zgodnie z powyższym błędem, pierwszą rzeczą, którą musisz zrobić, jest sprawdzenie wszystkich dostępnych zasobów, do których można uzyskać dostęp w activity_main, ponieważ istnieje większe prawdopodobieństwo, że znajdziesz błąd. W najgorszym przypadku może skończyć się sprawdzeniem wszystkich plików zasobów.

Darush
źródło
4
To. To rozwiązało mój problem. Bardzo denerwujące jest to, że ten błąd nie został zasygnalizowany przez IDE, a błąd linkowania mówi o czymś zupełnie innym.
ocramot
4
matka Boga !
Mihir Patel
2
mój był właściwie: <?xml version="1.0" encoding="UTF-8"?><?xml version="1.0" encoding="UTF-8"?> (w tym samym wierszu: P trudniejszy do wykrycia)
Alan Deep
1
Moje polegało na tym, że korzystałem z zasobu w Manifest, gdy był już usunięty <meta-data android:name="com.google.android.actions" android:resource="@xml/my_event_session_menu" />
Gpak
2
+1 za zaoszczędzenie mi czasu. Najbardziej irytujące jest to, że Android Studio wskazało niewłaściwy plik, co spowodowało, że podrapałem się w głowę, ponieważ plik, do którego nie mógł się połączyć, był w porządku.
Machine Tribe
46

Uwaga: Android Studio wypluwa mnóstwo szalonych błędów, takich jak ten, jeśli zaktualizujesz biblioteki wsparcia do, 28.0.0a nie masz compileSdkVersion28.

Daniel Wilson
źródło
14
Miałem już oba compileSdkVersion 28i support-v4:28.0.0otrzymuję ten sam błąd :(
ocramot
1
@ocramot Naprawiłem problem, obniżając wersję compileSdkVersion do 27
suvojit_007
1
+1. Mój projekt składa się z dwóch modułów i miałem różne wersje (jedna miała 29, a druga 27). Kiedy ustawiłem wszystkie na 29, błąd zniknął
voghDev
Dzięki! W moim przypadku musiałem ustawić „minSdkVersion” na to samo, co „compileSdkVersion”. W przeciwnym razie uruchomiłaby się tylko pierwsza kompilacja, a wszystkie następujące po sobie ponowne uruchomienia zakończyłyby się niepowodzeniem z podobnym błędem jak OP
Jim B
8

Problem ustalone dla mnie, zastępując compileSdkVersion 23z compileSdkVersion 28w build.gradle (Project: build).

Jaime Montoya
źródło
Pracował dla mnie, dzięki! Nadal mamminSdkVersion 23
Stephen Hosking
@StephenHosking Czy to zadziałało bez aktualizacji compileSdkVersionz 23do 28? W takim razie jaki był pierwotny problem?
Jaime Montoya,
Powinienem być bardziej dokładny. Twoje rozwiązanie, tj. wymienić compileSdkVersion 23z compileSdkVersion 28pracował dla mnie, ale ja po prostu wspomnieć, że był w stanie opuścić minSdkVersion 23, jako dodatkową informacją na temat prawidłowego rozwiązania. Moim pierwotnym problemem był „Błąd - nie udało się połączyć zasobów Androida”
Stephen Hosking,
@StephenHosking Nice. Dobrze, że teraz działa.
Jaime Montoya
7

Jeśli używasz systemu Windows 10 i Android Studio 3.2, możesz po prostu przejść do pliku build.gradle aplikacji i zmienić wersję.

W ramach zależności zmień wersję i kompiluj / synchronizuj

Syed Raza
źródło
To jest moduł Gradle. Kliknij powyższy link, aby zobaczyć zrzut ekranu.
Syed Raza
3
Czy system Windows 10 jest wymagany?
IgorGanapolsky
4

Zaimportowałem nowe kolory do mojego projektu i mam ten sam problem. Więc otworzyłem styles.xmli ponownie przypisałem elementy do kolorów, używając nowych nazw kolorów.

Oleksandr
źródło
4

Rozwiązałem to, dodając @+id/ przed wszystkimi moje identyfikatory.

to znaczy @+id/your_item_id

Sajid2405
źródło
To nie jest prawidłowa odpowiedź na pytanie. udzielić prawidłowej odpowiedzi i jak to zrobiłeś i jaki jest problem ?. \
Yohan Malshika
4

czuję się tak głupio - (z jakiegokolwiek powodu) miałem jeden pusty plik XML w folderze do rysowania. i AS wyprodukował dziesiątki niepowiązanych błędów> <

więc moja ogólna rada byłaby taka sama - sprawdź krótko każdy plik zasobów.

mjollneer
źródło
3

com.android.support:support-v4 niedawno otrzymał aktualizację i może mieć wpływ na wtyczkę używającą zaktualizowanej wersji w swoich zależnościach. Ale jeśli nie możesz znaleźć w zależnościach (na przykład jeśli używasz wtyczki crosswalk), po prostu umieść ten kod na górze wtyczki gradle kodu (nie musisz dodawać do build.gradle).

configurations.all {
resolutionStrategy.force 'com.android.support:support-v4:24.0.0'
}

Przykładowe miejsce umieszczenia kodu we wtyczce dla pieszych tutaj

Zapraszam do edycji wersji com.android.support (NIE UŻYWAĆ 28.0.0), ponieważ to jest problem

Ahmad Azam
źródło
2
Wielkie dzięki. Używam, 27.1.0jak wspomniano @RFourie.
Ramesh Murugesan
2

W plikach zasobów powinien występować błąd. Oznacza to, że może brakować wpisanej wartości atrybutów. Przejrzyj pliki zasobów, popraw te wartości i ciesz się pracą.

Razz
źródło
2

Może być wiele przyczyn tego problemu, a te są głównie w pliku build.gradle na poziomie zasobów lub aplikacji.

W moim przypadku widok w pliku zasobów nie miał wymaganej zależności zawartej w pliku build.gradle.

Dlatego upewnij się, że wszystkie wymagane zależności znajdują się w pliku build.gradle.

N. Fatma
źródło
2

Sprawdź wersję wtyczki Gradle . Spróbuj obniżyć go, jeśli zaktualizowałeś go do nowszej wersji tuż przed pojawieniem się tego problemu. Przejdź do Plik -> Struktura projektu . Przejdź do poprzedniej wersji.

JeffinJ
źródło
2

Miałem ten sam problem i rozwiązałem go, przechodząc do Plik -> Struktura projektu ... -> Sugestie, a następnie Zastosuj wszystko. Jak zasugerował @JeffinJ Myślę, że problem był spowodowany aktualizacją wtyczki Gradle.

cie
źródło
1

Spróbuj zaktualizować najnowszą wersję kompilacji, wersję docelową i kompilacyjną, a także zaktualizuj zależności, ale nie działa dla mnie

W moim przypadku zmień <meta-items/>na<meta-data/> manifest działa dla mnie ...

Mam nadzieję, że komuś to pomoże ...

Lokesh
źródło
1

Miałem ten sam problem, ale to dlatego, że w moich przyciskach layout_width / height zapomniałem wstawić dp na końcu podczas ich edycji. Dodano dp i naprawiono problem: /

DontJudgeMe
źródło
1

U mnie błąd pojawił się po zmianie ikony programu uruchamiającego za pomocą Asset Studio. Okazuje się, że w ic_launcher_foreground.xmlwygenerowanym pliku brakowało następującego wiersza u góry pliku: <?xml version="1.0" encoding="utf-8"?>

Droid
źródło
Mój był podobny. Dodałem nowy wariant kompilacji i miałem dwa z tych błędów. Pierwsza nie miała sensu, ale zagłębiłem się w drugi błąd i stwierdziłem, że brakuje tej kompilacji ic_launcher.png
ja928
1

W moim przypadku przypadkowo napisałem:

app:displayViewTitle="@string/instructions_defineExtract_confirm_email"

Co ciekawe, Android Studio było w stanie nawigować po ciągu za pomocą CTRL + klik. Po prostu powodował błąd czasu kompilacji. Zmiana na standardową „separację kropek” załatwiła sprawę

app:displayViewTitle="@string/instructions.defineExtract.confirm.email"
Onat Korucu
źródło
1

Znalazłem jeden z powodów, które powodują ten problem

Kiedy próbujemy użyć dowolnego

sznurek, styl, kolor itp.,

w pliku manifestu, którego nie ma w wartościach, (string.xml,style.xml,color.xml,etc,)pojawia się ten typ błędu

Vishnu Magar
źródło
1

Mam ten sam błąd i naprawiłem go po zamknięciu AndroidStudio i usunięciu katalogu, jak C:\Users\Jalal D\.gradle\caches\transforms-1\w informacjach o błędzie kompilacji.

103style
źródło
0

Miałem podobny problem, ale wyszedłem z rozwiązania, problem polegał na tym, że używałeś jakiejkolwiek rzeczy w zależności, która odpowiada tej samej domenie, ale z różnymi wersjami upewnij się, że wszystkie są takie same

Shubham Kumar Gupta Ggps
źródło
Ostatniej nocy zainstalowałem Android Studio 3.3.2. Jestem kompletnym nowicjuszem. Stworzyłem aplikację „Flutter” i próbowałem ją uruchomić. Otrzymuję następujące dane wyjściowe i komunikat o błędzie łączenia:
Elliot
0

Miałem ten sam problem i został on rozwiązany poprzez usunięcie błędów z plików zasobów, takich jak style, pliki kolorów w folderze wartości. W moim przypadku błąd w kolorach stylu, jak poniżej:

 <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:textColorPrimary">**@color/colorPrimary**</item>
    <item name="android:textColorSecondary">**@color/colorPrimaryDark**</item>
</style>
Ravi
źródło
0

Zmiana wersji biblioteki obsługi na ostatnią włączoną (28.0.0) przez poprzednią (27.1.0) , błąd Android Resource Linking Failedzniknął.

Należy zauważyć, że wersja 27.1.0 jest maksymalnym dozwolonym w naszych implementacjach wersją, która działa, ale jeśli chcesz, możesz użyć starszej wersji. I to musi być używane we wszystkich zależnościach, które zaczynają się od łańcuchacom.android.support:

project / app / build.gradle

implementation "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"
implementation "com.android.support:support-v4:$rootProject.supportLibraryVersion"

project / build.gradle

ext {
    supportLibraryVersion= '27.1.0'
}

Następnie zsynchronizuj projekt z plikami Gradle

GL

Braian Coronel
źródło
0

Wystąpił ten sam problem, ale przed wyświetleniem tego błędu moja aplikacja działała. Więc po prostu cofnąłem 2/3 razy. I znowu dokonał zmian. Aplikacja została pomyślnie uruchomiona.

Uparty
źródło
0

Natknąłem się na ten sam problem po dodaniu następującej zależności:

implementation 'com.evernote:android-state:1.4.1'
annotationProcessor 'com.evernote:android-state-processor:1.4.1'

Powodem było to, że najnowsza wersja evernote używa zależności od AndroidX, podczas gdy ja miałem obsługę biblioteki w wersji 27.1.1 w moim projekcie. Tak więc istniała opcja aktualizacji bibliotek wsparcia do 28.0.0, jak sugerują inne odpowiedzi, ale było to trochę trudne w przypadku dużego projektu z wieloma niestandardowymi widokami. Tak więc rozwiązałem ten problem, obniżając wersję evernote do 1.3.1.

anro
źródło
0

Może zabrzmi to banalnie, ale jak dla mnie Build > Clean Projectnaprawiłem ten błąd bez żadnych innych zmian.

mihai1990
źródło
0

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-rc01do 1.0.0-rc02.

Komunikat o błędzie mówił coś o nierozpoznaniu, layout_constraintTop_toTopOfco oczywiście jest głupie, ponieważ kompilował się szczęśliwie od miesięcy.

Jestem już na 28.0.3 narzędzi do kompilacji i compileSdkVersion28. Używam androidx.appcompatwszę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.AppCompatTextViewblok, 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ć?

tfrysinger
źródło
0

W moim przypadku przypadkowo stylizowałem właściwość obecną tylko w przyciskach i dodałem ten styl dla TextView.

<!-- applied to TextViews -->
<style name="rowStyle"> 
    <item name="android:padding">3dp</item>
    <item name="android:borderlessButtonStyle">false</item> <!-- this caused the error -->
    <item name="android:background">@drawable/textview_border</item>
</style>

Usunięcie rzędu z android:borderlessButtonStylenaprawionym problemem.

Embid123
źródło
0
  • Kliknij prawym przyciskiem myszy folder do rysowania i wybierz „Pokaż w Eksploratorze” .
  • Znajdź uszkodzony plik w otwartym systemie plików, zaznacz je (lub wybierz pliki w całym rysunku), a następnie skopiuj je do pliku drawable-v24 (nie usuwaj pliku do rysowania i utwórz go, jeśli nie ma pliku drawable-v24 ).
  • Następnie wybierz Plik -> Unieważnij pamięci podręczne / Uruchom ponownie i
  • uruchom ponownie Android Studio.
Görkem KARA
źródło
Punkt 1 i 2 działa dla mnie. Ale teraz muszę umieścić niepoprawne pliki w dwóch miejscach, jednym w drawable, a drugim w drawable-v24.
Aman Goyal,
0

W przypadku, gdy napotkasz to: w moim przypadku miałem przetłumaczony ciąg, ale ciąg nie pojawił się jeszcze w domyślnym strings.xml. Dodano brakujący ciąg do strings.xml i problem został rozwiązany.

ea_
źródło
0

W moim przypadku błąd wskazywał na plik AndroidManifest.xml. Miałem taką linię:

<meta-data
            android:name="com.google.android.actions"
            android:resource="@xml/popup_info.xml" />

Co, nie jestem pewien, dlaczego Android Studio to tam umieściło. Nie zmieniłem pliku manifestu i nigdy się to nie stało, dopóki nie zaktualizowałem do wersji 3.5.3 - więc AS musiał zrobić to za mnie. W każdym razie linia powinna wyglądać tak:

<meta-data
            android:name="com.google.android.actions"
            android:resource="@layout/popup" />

Kiedy to zmieniłem, wszystko było dobrze.

Will Buffington
źródło