Nagle podczas synchronizacji Gradle pojawia się ten błąd:
OSTRZEŻENIE: Interfejs API „variant.getJavaCompile ()” jest przestarzały i został zastąpiony przez „variant.getJavaCompileProvider ()”. Zostanie usunięty pod koniec 2019 roku. Aby uzyskać więcej informacji, zobacz https://d.android.com/r/tools/task-configuration-avoidance Dotknięte moduły: aplikacja
Mam to build.gradle
dla modułu aplikacji:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'io.fabric'
android {
compileSdkVersion 28
buildToolsVersion "28.0.2"
defaultConfig {
applicationId "..."
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "..."
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
versionNameSuffix = version_suffix
[...]
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
[...]
}
debug {
[...]
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.61"
implementation 'androidx.appcompat:appcompat:1.0.0-rc02'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation "com.android.support:preference-v7:28.0.0"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
implementation 'com.google.android.material:material:1.0.0-rc02'
[...]
}
Mogę poprawnie skompilować aplikację, ale trochę mnie to niepokoi, a jak widzę, coś przestanie działać pod koniec 2019 roku. Jakieś pomysły na to, co to jest i jak to rozwiązać?
Odpowiedzi:
Ten problem został rozwiązany teraz dzięki aktualizacji Fabric Gradle w wersji 1.30.0:
Aktualizacja wydania: 19 marca 2019 r
Proszę zobaczyć ten link: https://docs.fabric.io/android/changelog.html#march-15-2019
Zaktualizuj swoją zależność od ścieżki klas na poziomie projektu Stopień:
źródło
classpath 'io.fabric.tools:gradle:1.29.0'
. Co powinienem zrobić?Ten problem występuje po aktualizacji do wersji 3.3.0
Jeśli nie robisz tego, co wskazuje na błąd w pliku stopniowym, przyczyną może być pewna wtyczka, która nie zaktualizowała się do nowszego interfejsu API. Aby dowiedzieć się, która wtyczka, wykonaj następujące czynności (jak wyjaśniono w „Lepszych informacjach debugowania przy użyciu przestarzałego interfejsu API” ogłoszenia 3.3.0 ):
Mam nadzieję, że pomaga innym
źródło
android.debug.obsoleteApi=true
Aby przeczytać zarejestrowane dane: Przejdź do zakładki Kompilacja u dołu iw oknie „Kompiluj wyjście” kliknij „Przełącz widok”. Kiedy klikniesz, że ładne, kolory znikają, przewiń na górę tam, gdzie jest napisaneWARNING: API 'variant.getAssemble()' is obsolete
. Potem poniżej pokazuje, żeREASON: Called from:
... w moim przypadku było to spowodowane przez medium.com/@xabaras/...W moim przypadku było to spowodowane usługami gms 4.3.0. Więc musiałem to zmienić na:
Znalazłem to, uruchamiając:
w terminalu. Przejdź do widoku -> okna narzędzi -> Terminal w Android Studio.
źródło
./
przed poleceniem, to znaczy, jeśli terminal jest ustawiony na katalog główny projektu Android. W przeciwnym razie będziesz musiał wykonać cd do katalogu głównego projektu.To tylko ostrzeżenie i prawdopodobnie zostanie naprawione przed 2019 r. Dzięki aktualizacjom wtyczek, więc nie martw się o to. Polecam korzystanie z kompatybilnych wersji wtyczek i gradle.
Tutaj możesz sprawdzić wersję wtyczki i wersję stopniową, aby uzyskać lepsze wrażenia i wydajność.
https://developer.android.com/studio/releases/gradle-plugin
Spróbuj użyć stabilnych wersji, aby uzyskać płynny kod bez ostrzeżeń / błędów.
źródło
Zetknąłem się również z tym samym problemem. Po pewnym czasie doszedłem do wniosku, że pojawiło się ostrzeżenie z powodu użycia najnowszej wersji
google-services
wtyczki (wersja 4.3.0). Nawiasem mówiąc, używałem tej wtyczki do funkcjonalności Firebase w mojej aplikacji. Wszystko, co zrobiłem, to obniżyć wersję mojejgoogle-services
wtyczki w buildscript w pliku poziomu build.gradle (Projekt) w następujący sposób:źródło
Zmień wersję usług Google z
build.gradle
:źródło
Jest to ostrzeżenie wyrzucone przez narzędzia do budowania z dwóch powodów.
1. Jedna z wtyczek korzysta z Task zamiast TaskProvider, nic nie możemy zrobić.
2. Skonfigurowałeś użycie zadania, o ile obsługuje ono TaskProvider.
Uważaj na fragmenty jak poniżej i aktualizuj.
Podobnie znaleźć zwyczaje
'variant.getJavaCompile()'
albo'variant.javaCompile'
,'variant.getMergeResources()'
albo'variant.mergeResources'
. Wymień jak wyżej.Więcej informacji na stronie Unikanie konfiguracji zadania
źródło
./gradlew
. To nie ma nic wspólnego z AS, jest w narzędziach do kompilacji. Uaktualnij / obniż docom.android.tools.build:gradle:3.2.0
i wykonaj./gradlew
. To nie nadejdzie.variant.generateBuildConfig.enabled
w moim projekcie. Nadalvariant.generateBuildConfig.enabled
w moim projekcie. NadalObniżenie wersji Gradle działało dla mnie:
źródło
1) Dodaj
android.debug.obsoleteApi=true
do swojegogradle.properties
. Pokaże, na które moduły ma wpływ dziennik ostrzegawczy.2) Zaktualizuj te przestarzałe funkcje.
variant.javaCompile
dovariant.javaCompileProvider
variant.javaCompile.destinationDir
dovariant.javaCompileProvider.get().destinationDir
źródło
Aktualizacja wersji Kotlin ( wtyczki i stdLib ) do 1.3.1 rozwiązała to ostrzeżenie w moim przypadku. Zaktualizuj wersję Kotlin w całym projekcie, zastępując istniejącą wersję Kotlin:
źródło
ext.kotlin_version = '1.2.71'
… Zmieniłem to na powyższą odpowiedź i działało dobrze! -/android
/ios
flutter create .
ext.kotlin_version = '1.2.71'
build.gradle
Wróć ze ścieżki klasy „com.android.tools.build:gradle:3.3.0-alpha13” do ścieżki klasy „com.android.tools.build:gradle:3.2.0”
to działało dla mnie
źródło
Zaktualizuj wtyczkę do najnowszej wersji pliku Gradle na poziomie projektu (nie na poziomie aplikacji). W moim przypadku ta linia rozwiązała problem
do
źródło
W moim przypadku
był
zaktualizowano do
wygląda na to, że problem już minął
źródło
W moim przypadku musiałem skomentować
com.google.firebase.firebase-crash
wtyczkę:Jest to błąd, ponieważ Android Studio 3.3.0
źródło
oss-licenses-plugin
Aktualizacja od poziomu do stopnia: 3.3.0
Domyślne zadanie „montuje” dotyczy tylko normalnych wariantów. Dodaj również warianty testowe.
również komentarz zastosować tkaninę
źródło
crashlytics { manifestPath = "$buildDir/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml" }
Gdy wtyczka wykryje, że używasz interfejsu API, który nie jest już obsługiwany, może teraz dostarczyć bardziej szczegółowych informacji, które pomogą ci określić, gdzie ten interfejs API jest używany. Aby zobaczyć dodatkowe informacje, musisz dołączyć następujące elementy do pliku gradle.properties swojego projektu:
źródło
jeśli usunę ten wiersz z
application gradle
:błąd już się nie pojawi.
Link referencyjny github
źródło
zależności są uaktualniane do systemu AndroidX. więc jeśli chcesz korzystać z zawartości systemu AndroidX, przenieś swój projekt do systemu AndroidX.
W Android Studio 3.2 i nowszych wersjach możesz szybko migrować istniejący projekt do AndroidX, wybierając Refactor> Migruj do AndroidX z paska menu.
źródło
To rozwiązało mój problem. Wystarczyło obniżyć wersję wtyczki usług Google w buildscript w pliku build.gradle (Project) w następujący sposób
źródło
Oto tymczasowe obejście, jeśli korzystasz z pokoju, po prostu uaktualnij do wersji 1.1.0 lub nowszej
usuwa to ostrzeżenie dla mnie.
źródło
trzymaj Projekt (nie aplikacja) Zależności Build.gradle kod wersji ścieżka klasy jest nowa
źródło
To popularne pytanie. Jeśli nie skorzystasz z tych metod, rozwiązaniem będzie aktualizacja bibliotek. Zaktualizuj swoją wersję kotlin i wszystkie swoje zależności, takie jak fabric , protobuf itp. Jeśli masz pewność, że wszystko zaktualizowałeś, spróbuj zapytać autora biblioteki.
źródło
Aktualizacja wtyczki protobuf-gradle do wersji 0.8.10 rozwiązała mój problem. Zamień swój istniejący protobuf na
źródło
Wynika to głównie z przestarzałych bibliotek. Aby ręcznie sprawdzić dostępność nowych aktualizacji, należy przejść do
To powinno wystarczyć. Inną opcją jest uruchomienie aktualizacji zależności stopniowej przy użyciu
./gradlew dependencyUpdates
, które wygenerują taki raport:
źródło
aktualizacja usług Google na poziomie projektu
build.gradle
rozwiązało mój problem.Po aktualizacji:
źródło
Miałem ten sam problem i problem został rozwiązany poprzez zdefiniowanie wersji wtyczki stopni kotlin w pliku build.gradle.
Zmień to
do
źródło
W moim przypadku poszedłem za tym . Podsumowanie, na poziomie aplikacji stopniowej: zmień to:
do
źródło