błąd: zasób android: nie znaleziono attr / fontVariationSettings

153

Ostrzeżenie:android.dexOptions.incrementalWłaściwość jest przestarzała i nie ma wpływu na proces kompilacji. /home/midhilaj/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/be3106efb0df111fe5a3f7b356dd070b/res/values/values.xml Błąd: (246, 5) błąd: zasób android: attr Nie znaleziono / fontVariationSettings. /project/bkup/7_march_2018/hyshoper/milla/build/intermediates/incremental/mergeDebugAndroidTestResources/merged.dir/values/values.xml Błąd: (246, 5) błąd: nie znaleziono zasobu android: attr / ttcIndex. Błąd: (269) nie znaleziono zasobu android: attr / ttcIndex. Błąd: (269) nie znaleziono zasobu android: attr / fontVariationSettings. Błąd: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: Błąd AAPT2: sprawdź dzienniki, aby uzyskać szczegółowe informacje Błąd: nie udało się połączyć odniesień. Błąd: java.util.concurrent.

Błąd wykonania aapt Informacja: 9 błędów Informacja: BUDOWA NIEUDANA w 2s Informacja: 1 ostrzeżenie Informacja: Zobacz cały wynik w konsoli

Jak rozwiązać ten problem? moje zależności

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })


    compile 'de.hdodenhof:circleimageview:2.2.0'



    compile('com.alibaba.android:ultraviewpager:1.0.6.1@aar') {
        transitive = true
    }
    compile('org.apache.httpcomponents:httpmime:4.3.6') {
        exclude module: 'httpclient'
    }
    compile 'com.synnapps:carouselview:0.1.4'
    compile 'com.sun.mail:android-mail:1.5.5'
    compile 'com.sun.mail:android-activation:1.5.5'
    implementation 'com.muddzdev:styleabletoast:2.0.2'
    compile 'javax.annotation:javax.annotation-api:1.2'




    compile 'me.grantland:autofittextview:0.2.+'
    // base library
     //slider
    compile 'com.ss.bannerslider:bannerslider:1.8.0'
    //noinspection GradleCompatible
    compile 'jp.wasabeef:recyclerview-animators:2.2.7'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.github.satyan:sugar:1.4'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.android.support:percent:26.1.0'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.github.satyan:sugar:1.4'
    compile 'jp.wasabeef:recyclerview-animators:2.2.6'
    compile 'pl.droidsonroids.gif:android-gif-drawable:1.1.+'
    compile 'com.afollestad.material-dialogs:core:0.9.4.2'
    compile 'com.google.android.gms:play-services:9.8.0'
    compile 'com.google.android.gms:play-services-auth:9.8.0'
    compile 'com.google.android.gms:play-services-location:9.8.0'
    compile 'com.google.firebase:firebase-core:9.8.0'
    compile 'com.google.firebase:firebase-auth:9.8.0'
    compile 'com.google.firebase:firebase-database:9.8.0'
    compile 'com.google.firebase:firebase-config:9.8.0'
    compile 'com.google.firebase:firebase-crash:9.8.0'
    compile 'com.google.firebase:firebase-invites:9.8.0'
    compile 'com.google.firebase:firebase-storage:9.8.0'
    compile 'cn.pedant.sweetalert:library:1.3'
    compile 'at.blogc:expandabletextview:1.0.3'
    compile 'com.joanzapata.iconify:android-iconify-fontawesome:2.1.+'
    compile 'com.android.support:appcompat-v7:26.1.0'

    implementation 'com.github.bumptech.glide:glide:4.6.1'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.6.1'
    compile 'com.android.support:design:26.1.0'
    compile 'com.android.support:cardview-v7:26.1.0'
    compile 'com.android.support:support-v4:26.1.0'
    compile 'com.android.support:recyclerview-v7:26.1.0'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.daimajia.slider:library:1.1.5@aar'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    implementation 'com.android.support:design:26.1.0'

}
Midhilaj
źródło
1
rozwiązałem mój problem tutaj: stackoverflow.com/questions/49162538/ ...
Gilson
Hej, mam ten sam problem, co Ty: „Nie zainstalowano aplikacji” podczas wysyłania pliku .apk do innych osób. Czy możesz mi w tym pomóc.
Naveen

Odpowiedzi:

264

spróbuj zmienić compileSdkVersion na:

compileSdkVersion 28

fontVariationSettings dodano na poziomie 28 interfejsu API. Dokument interfejsu API znajduje się tutaj

zyc zyc
źródło
2
Musiałem przejść na wersję 28, kiedy dodałem do projektu najnowszą bibliotekę Kotlin Extensions i otrzymywałem ten błąd. Dzięki!
Micer
1
Rozwiązało to dla mnie następujący problem: „Nie znaleziono zasobu android: attr / fontVariationSettings”.
Adam Hurwitz
1
@Micer przepraszam, nie jestem pewien, co się stało w twoim projekcie, być może potrzebujesz go wyczyścić i odbudować. lub rozwiąż zależności w projekcie.
zyc zyc
2
@zyczyc Chodziło mi o to, że używałem 27 i uaktualnienie do 28 rozwiązało wszystkie problemy. Próbowałem wyczyścić i odbudować wcześniej bez powodzenia.
Micer
1
@anunixercoder Miałem ten sam problem. Sdk 28 nie jest opcją, więc szukałem: app: depencies dla konfliktów i zablokowałem zależności zgodne z wersjami zu do api 27, takie jak FilipFloryan poniżej (build-extras.gradle) wspomniane.
Hank Lapidez
55

Jest to spowodowane niekompatybilnością z biblioteką obsługi Androida, która została zmieniona na wersję 28. Rozwiązałem problem, zmuszając kompilację do korzystania z niższej biblioteki obsługi. // jak build Gradle

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

Mój projekt został pomyślnie zbudowany natychmiast po zmianie. Mam nadzieję, że to też może ci pomóc. Straciłem przez to dzień rozwoju !.

akhil
źródło
7
gdzie umieścić te linie?
Kakashi
1
@Kakashi umieść te linie w build.gradle (moduł: aplikacja)
akhil
1
@akhid Czy masz na myśli platformy / androids / app / build.gradle? Jeśli tak, po prostu wklej tę linię w dowolnym miejscu tego pliku? Od jakiegoś czasu szukałem, gdzie umieścić tę linię :(
Thomas Kim,
19

W przypadku tych, którzy muszą zachować compileSdkVersion 27i nie mogą jeszcze zaktualizować do androidx , nie wolno aktualizować do (lub przekraczać) wersji zależności w poniższych linkach. Te linki są miejscem, w którym wprowadzono przełomową zmianę. Musisz znaleźć wcześniejszą wersję, która nie używa Androidax.

https://firebase.google.com/support/release-notes/android#update_-_june_17_2019

https://developers.google.com/android/guides/releases#june_17_2019

Na przykład następujące są zgodne z compileSdkVersion 27:

dependencies {
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.google.android.gms:play-services-maps:16.1.0'
    implementation 'com.google.android.gms:play-services-location:16.0.0'
    implementation 'com.google.firebase:firebase-core:16.0.9'
    implementation 'com.google.firebase:firebase-messaging:18.0.0'
}

Następujące elementy będą działać compileSdkVersion 27tylko z compileSdkVersion 28:

dependencies {
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.google.android.gms:play-services-maps:17.0.0'
    implementation 'com.google.android.gms:play-services-location:17.0.0'
    implementation 'com.google.firebase:firebase-core:17.0.0'
    implementation 'com.google.firebase:firebase-messaging:19.0.0'
}
Zwykły użytkownik
źródło
2
Dziękuję za udzielenie rozwiązania tym, którzy muszą tymczasowo zachować wersję 27 (przyjęta odpowiedź jest zbyt uproszczona)
Don
Dziękuję Ci! Miałem wartość compileSdkVersion ustawioną na 28, ale nie korzystałem z bibliotek androidx, a zmiana firebase na niższą pomogła.
michalbrz
9

Rozwiązuję ten problem za pomocą poniższej linii:

cordova plugin add cordova-android-support-gradle-release --save

Po tym kompilacja przebiegła pomyślnie.

John Prado
źródło
7

Jeśli aktualizujesz do wersji 28

zmień compileSdkVersion na compileSdkVersion 28

Pablo Cegarra
źródło
@victorsosa app / build.gradle
Pablo Cegarra
Umieściłem tam, ale otrzymuję błąd; czy możesz podać przykład?
victor sosa
5

Dla natywnych aplikacji na Androida (nie Cordova) rozwiązaniem jest dla mnie:

Był:

implementation 'com.android.support:support-v13:+'

Teraz:

implementation 'com.android.support:support-v13:27.1.1'
Eugene Voronoy
źródło
5

Kolejną poprawką dla programistów Ionic 3 jest utworzenie build-extras.gradle na platformach / Android i umieszczenie następujących

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

Zauważ, że build-extras.gradle to nie to samo co build.gradle

Filip Floryan
źródło
5

@ Cały problem wynika z ostatnich poważnych zmian w usłudze Google Play i Firebase w wersji z 17 czerwca 2019 r.

Jeśli jesteś w projekcie Ionic lub Cordova. Przejrzyj wszystkie wtyczki, w których ma zależność usługa Google Play i usługa Firebase ze znakiem +

Przykład:

W mojej integracji z firebase cordova miałem com.google.firebase: firebase-core: + com.google.firebase: firebase-messaging: + Więc plus zawsze pobieram najnowszą wersję, która powodowała błąd. Zmień + za pomocą numeru wersji zgodnie z wydaniem z 15 marca 2019 r. Https://developers.google.com/android/guides/releases

Pamiętaj, aby zastąpić symbole + aktualną wersją w pliku build.gradle biblioteki Cordova

bheema
źródło
3

Zwykle dzieje się tak z powodu wersji SDK i / lub zależności.

Dla programistów Cordova , umieść ustawienia zależności w project.propertiespliku „ ” w CORDOVA_PROJECT_ROOT/platforms/android/folderze, na przykład:

target=android-26
android.library.reference.1=CordovaLib
android.library.reference.2=app
cordova.system.library.1=com.android.support:support-v4:26.1.0
cordova.gradle.include.2=cordova-plugin-googlemaps/app-tbxml-android.gradle
cordova.system.library.3=com.android.support:support-core-utils:26.1.0
cordova.system.library.4=com.google.android.gms:play-services-maps:15.0.0
cordova.system.library.5=com.google.android.gms:play-services-location:15.0.0

Więc jeśli użyjesz CLI „ cordova build”, nadpisze on sekcję zależności:

dependencies {
    implementation fileTree(dir: 'libs', include: '*.jar')
    // SUB-PROJECT DEPENDENCIES START 
   /* section being overwritten by cordova, referencing project.properties */
...
    // SUB-PROJECT DEPENDENCIES END
}

Jeśli używasz odpowiednich bibliotek i ich wersji w project.properties, wszystko powinno być w porządku.

Joanna
źródło
usuń dodatkowe spacje poandroid.library.reference.2=app
Nicholas Vasilaki
Jesteś aniołem! Niszczyłem tym mózg. Wybrał ustawienie docelowe na Androida 26, ale ładował w zależnościach od 28. Dziękuję !!!!!!!!!
eliotRosewater
2

Miałem ten sam błąd, ale nie wiem, dlaczego się pojawił. Po wyszukaniu rozwiązania przeprowadziłem migrację projektu do AndroidX (Refactor -> Migrate to AndroidX ...), a następnie ręcznie zmieniłem import całych klas itp. Oraz w plikach układu (RecyclerViews, ConstraintLayouts, Toolbars itp.). Zmieniłem również compileSdkVersion i targetSdkVersion na wersję 28 i cały projekt / aplikacja działa dobrze.

Slepster
źródło
2

Jeśli ktoś ma ten błąd przy użyciu phonegap lub cordova z wtyczką cordova-plugin-fcm-ng lub cordova-plugin-fcm, rozwiązaniem, które zadziałało, jest utworzenie dodatkowego pliku konfiguracyjnego dla gradle "build-extras.gradle" w katalogu \ platform \ android \ app i umieszczenie w nim następujących wierszy

configurations.all {
 resolutionStrategy {
  force 'com.google.firebase:firebase-messaging:18.0.0'
  force 'com.google.firebase:firebase-core:16.0.8'
 }
}

Znalazłem to rozwiązanie czytając tę ​​stronę https://github.com/facebook/react-native/issues/25371 , w szczególności komentarz shreyakupadhyay z 30/07/19 i konsultując https://developers.google.com/android/ przewodniki / wydania # may_07_2019 o ostatniej wersji bibliotek.

Alessandro Battistini
źródło
2

Napotkałem ten błąd w trzepoczącym projekcie i wszystko, co musiałem zrobić, zaktualizować moją wersję compileSdkVersion do 28.

KROKI:

  1. W pliku build.gradle na poziomie aplikacji wyszukaj compileSdkVersion
  2. Sprawdź aktualną wersję
  3. Jeśli jest mniej niż 28, zaktualizuj je do 28

Jak wspomniano powyżej zyc zyc , właściwość fontVariationSettings została dodana na poziomie API 28.

Możesz również przeczytać więcej na ten temat tutaj

Otunba Tosyne Joseph
źródło
1

Dla programistów Ionic 3. Musiałem zaktualizować plik platform / android / project.properties TYLKO na:

cordova.system.library.2

być v4: 28.0.0+, w przeciwnym razie kompilacja nadal kończyła się niepowodzeniem.

Po wykonaniu tej czynności zawartość mojego pliku project.properties jest pokazana poniżej:

target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.android.support:support-v4:24.1.1+
cordova.system.library.2=com.android.support:support-v4:28.0.0+
cordova.system.library.3=com.android.support:support-v4:+
cordova.system.library.4=com.android.support:support-v4:25.+
cordova.system.library.5=com.android.support:appcompat-v7:25.+
cordova.gradle.include.1=cordova-plugin-googlemaps/starter-tbxml-android.gradle
cordova.system.library.6=com.google.android.gms:play-services-maps:15.0.1
cordova.system.library.7=com.google.android.gms:play-services-location:15.0.1
cordova.system.library.8=com.android.support:support-core-utils:26.1.0
cordova.system.library.9=com.squareup.okhttp3:okhttp-urlconnection:3.10.0
cordova.gradle.include.2=cordova-android-support-gradle-release/pasma-cordova-android-support-gradle-release.gradle

Mam nadzieję, że to komuś pomoże. To był dla mnie prawdziwy problem.

Tony Ross
źródło
IMHO, dlaczego nie wszystkie obsługują lib, tylko druga? 😊
Thomas Kim,
1

To był dla mnie wrzód na dupie! Zwłaszcza po aktualizacji do Android Studio 3.2.1 i Gradle 4.6 (dla programistów Gradle).

Myślę, że istnieje więcej niż jeden czynnik, który może spowodować taki wyjątek kompilacji. Jak dla mnie, miałem następujące wiersze kodu w moim pliku gradle.properties (używając SDK w wersji 27):

android.useAndroidX=true
android.enableJetifier=true

AndroidX jest alternatywą dla domyślnej biblioteki obsługi systemu Android i powinien być używany podczas kompilowania i kierowania zestawu SDK w wersji 28 (API 28). Przed aktualizacją Android Studio i Gradle dodałem powyższe wiersze w ramach przygotowań do ostatecznej pełnej migracji do AndroidX w celu użycia SDK w wersji 28 i kompilacja przebiegła pomyślnie. Dopiero po aktualizacji otrzymałem błąd podobny do powyższego:

error: resource android:attr/fontVariationSettings not found

Mam nadzieję że to pomoże.

marvatron
źródło
1

Dla mnie: moja zewnętrzna biblioteka używała tych atrybutów attr / fontVariationSettings i attr / ttcIndex, więc obniżam wersję mojej biblioteki i synchronizuję projekt. wszystko w porządku

Więc teraz :

 compileSdkVersion 27 
 implementation 'com.android.support:appcompat-v7:27.1.1'

a dla przyszłych czytelników ta biblioteka była łatwym zezwoleniem Google.

implementation 'pub.devrel:easypermissions:2.0.0'

Ta biblioteka używa sdkversion 28, muszę obniżyć wersję do 1.3.0

Tejas Pandya
źródło
1
Cześć, jak sprawdzić, czy ta biblioteka używa sdkversion 28? 😊
Thomas Kim,
1
@ThomasKim. po wdrożeniu tej biblioteki otrzymałem ten błąd. Wyszukałem i zweryfikowałem, że attributes attr/fontVariationSettings and attr/ttcIndexnależy 28tylko do . Więc obniżam wersję tej biblioteki i jej działa. Więc rozumiem, że to była przyczyna
Tejas Pandya
1
Rozumiem, mam pytanie, dlaczego nie zdecydowałeś się na upgrade do 28? aktualizacja za bardzo się rozwiąże (?) 😁 (przy okazji mam ten problem od prawie 3 dni i nie wiem, która wtyczka jest nie tak 😭)
Thomas Kim
2
@ThomasKim, ponieważ w momencie pisania tej odpowiedzi. w 28 jest kilka błędów, które powodują problemy w renderowaniu widoku projektu. więc 27 jest dla mnie lepsze
Tejas Pandya
1

Rozwiązałem problem, zmieniając docelową wersję Androida na 28 w project.properties (target = android-28) i instalując cordova-plugin-androidx i cordova-plugin-androidx-adapter.

Manoj Alwis
źródło
1

błąd: zasób android: nie znaleziono attr / fontVariationSettings

Otrzymałem ten błąd, kiedy dodałem bibliotekę ButterKnife, ale aktualizacja compileSdkVersion do 28 i targetSdk do 28 rozwiązała mój problem.

Raveesh GS
źródło
1

po aktualizacji do Androida 3.4.2 i FTC SDK5.2. Otrzymałem te błędy podczas tworzenia APK:

Łączenie zasobów systemu Android nie powiodło się C: \ Users \ idsid \ FTC \ SkyStone \ TeamCode \ build \mediates \ inkremental \ mergeDebugResources \ scaled.dir \ values ​​\ values.xml: 1205: błąd: nie znaleziono zasobu android: attr / fontVariationSettings. C: \ Users \ idsid \ FTC \ SkyStone \ TeamCode \ build \mediates \ inkremental \ mergeDebugResources \ scaled.dir \ values ​​\ values.xml: 1206: błąd: nie znaleziono zasobu android: attr / ttcIndex. błąd: nie udało się połączyć odniesień.

Dodałem następującą sekcję do oceny kompilacji projektu i problem został rozwiązany.

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 28
                buildToolsVersion '29.0.2'
            }
        }
    }
}

Powodzenia.

Steven Wang
źródło
1

Ten problem pojawił się nagle po próbie wyciągnięcia zależności w zależności od sdk 28 (firebase crashlytics), ale potem zdecydowałem się cofnąć zmiany.

Wypróbowałem automatyczny refaktor Migrate to Androidx(który wykonuje połowę pracy), dodałem android.useAndroidX=truew gradle.propertiesniektórych punktach i ponownie sprawiłem, że projekt działa.

Ale przed dostawą było dużo zmian. Nie było sposobu, aby ponownie mieć kompilacji projektu z SDK 27. git clean -fd, usuwane $HOME/.gradlei przechowywane widząc androidx in./gradlew :app:dependencies

Skończyło się na usunięciu ~/.AndroidStudio3.5/też (jestem na 3.5.3). To sprawia, że ​​projekt ponownie się kompiluje i odkryłem tryb ciemny ...

Fred
źródło
0

Usunąłem wszystkie nieużywane wtyczki z pubspec.yaml i bibliotek zewnętrznych, aby rozwiązać problem.

w kapeluszu
źródło
0

Właśnie dostałem ten błąd AndroidX ponownie po naprawieniu go rok temu. Używam Fluttera.

Udało mi się tworzyć wersje przy użyciu Fluttera 1.7.8 + poprawka 4, a następnie niedawno zaktualizowałem Fluttera do wersji 1.17.4 i nie mogłem już skompilować kompilacji wydania. Kompilacje debugowania działały dobrze.

TLDR : Tym razem był to pakiet korzystający z innego pakietu, który nie został odpowiednio zaktualizowany dla AndroidX.
Upewnij się, że zaktualizowałeś swoje pakiety! :)

Komunikat o błędzie: Ważna część

[+1099 ms] > Task :package_info:verifyReleaseResources FAILED 
[  +10 ms] FAILURE: Build failed with an exception. 
[  +10 ms] * What went wrong: 
[  +29 ms] Execution failed for task ':package_info:verifyReleaseResources'. 
[   +3 ms] java.util.concurrent.ExecutionException:com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed 
[   +7 ms]  ...\build\package_info\intermediates\res\merged\release\values\values.xml:171:error: resource android:attr/fontVariationSettings not found. 
[   +2 ms] ...\build\package_info\intermediates\res\merged\release\values\values.xml:172:error: resource android:attr/ttcIndex not found.     
[   +1 ms] error: failed linking references.

Komunikat o błędzie: Distraction

       FAILURE: Build failed with an exception.

       * What went wrong:
       A problem occurred configuring root project 'barcode_scan'.
       > SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

„Nie znaleziono fontVariationSettings”. to błąd AndroidX, który wymaga użycia compileSdkVersion 28, ale już to miałem, więc podejrzewam, że coś zostało zaimplementowane między moimi dwiema wersjami Fluttera, aby było bardziej restrykcyjne.

Musiałem więc iść na polowanie i zaktualizować pakiety i znalazłem to. „package_info: ^ 0.3.2” musiał mieć wartość „package_info: ^ 0.4.0”, aby działał. Aby uczynić go „bardziej” przyszłym, napisz to w ten sposób:

package_info: '>=0.4.0 <2.0.0'

Po zaktualizowaniu pakietów moja baza kodu kompiluje się ponownie do wydania. Mam nadzieję, że to pomoże.

Bo Jensen
źródło