Korzystanie z nowego studia Android z nową wtyczką Gradle 3.0.0.
Podczas budowania pojawiło się ostrzeżenie:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
android
android-studio
gradle
kotlin
android-studio-3.0
Valentin Baryshev
źródło
źródło
Odpowiedzi:
Z tego co wiem, wtyczki dodane jako zależności ścieżki klas będą powodować problemy. Tj. Firebase miał z tym problem. Łyżka i Flutter również. Wykonywanie tego wyszukiwania w Google ujawnia wiele repozytoriów GitHub, w których pojawił się problem związany z tym samym, a wszystko, co je łączy, to fakt, że jest to wtyczka Gradle. Tkanina również wydaje się być przyczyną, o czym wspomina Mate *
Z tego, co wiem, problem pochodzi z / wielu wtyczek Gradle. Może być również wyzwalany przez kod Gradle, ale najprawdopodobniej nie ma to zastosowania, jeśli projekt jest aplikacją, a nie wtyczką Gradle.
A jak wspomniał Alex Cohn w komentarzu, wycofanie się jest ostrzeżeniem. W tym przypadku oznacza to, że jest to funkcja, która zostanie ostatecznie usunięta. Więc na razie, zakładając, że jest to wtyczka (a nie stworzona przez Ciebie), możesz ją zignorować. Do czasu jego usunięcia większość / wszystkie główne wtyczki powinny zostać zaktualizowane, aby to naprawić.
I znowu jest to ostrzeżenie; nie jest to błąd. Nadal możesz go uruchomić i zignorować, jeśli nie możesz nic zrobić z problemem. Wyłączenie np. Wtyczki Fabric * jest przesadą, ponieważ nadal działa.
Sam nie używam Fabric, a Fabric nie jest open-source, więc nie wiem, czy programiści to naprawili, czy nie
TL; DR: Przyczyną są wtyczki Gradle. To ostrzeżenie (nie błąd), więc usunięcie wtyczek powodujących problem jest przesadą. Jeśli nie możesz tego naprawić, zostaw to w spokoju, o ile jest tylko wycofane w tej chwili (nie zostało usunięte)
Jeśli korzystasz z Firebase, istnieje specyficzne rozwiązanie, które jest również wspomniane w przewodniku migracji (link w dalszej części tego postu); wyklucz moduł guawa
Sam problem jest dość trudny do wykrycia. Z tego, co wiem, nie ma jednego problemu, który go powoduje we wszystkich sprawdzonych wtyczkach (i połączonych w tej odpowiedzi). Jeśli zakodowałeś coś, co powoduje problem (i można to naprawić; dodanie wtyczki gradle innej firmy go nie powoduje), jest kilka rzeczy, które możesz spróbować naprawić.
Z tego, co mogę powiedzieć na temat rzeczywistej przyczyny, można to rozwiązać, aktualizując plik Gradle (chociaż w bibliotece Spoon zostało to naprawione przez zmianę wiersza związanego z
TestVariant
), postępując zgodnie z tematami w przewodniku migracji wtyczki Gradle 3.0.0.Całość jest opisana w dokumentacji deweloperskiej , ale tutaj jest kilka rzeczy, które moim zdaniem są istotne w oparciu o żądania ściągnięcia wykonane w projektach, w których był to problem:
Oprócz aktualizacji wersji Gradle i wtyczki, musisz również dodać
google()
repozytorium podrepositories
.compile
jest terazimplementation
lubapi
, aleimplementation
jest zalecany.provided
jestcompileOnly
iapk
jestruntimeOnly
androidTestCompile
stał sięandroidTestImplementation
itestCompile
->testImplementation
Jeśli używasz smaków, musisz użyć wymiarów smaków (opisanych w dokumentacji).
W przypadku typów kompilacji należy uwzględnić rezerwy na wypadek, gdyby biblioteka nie miała tego typu kompilacji. Są one zdefiniowane w
profile
bloku podandroid
blokiem.Jeśli jeszcze tego nie zrobiłeś, musisz najpierw zdefiniować wtyczkę gradle. Jeśli nie masz żadnych innych zależności ścieżek klas, nie stanowi to problemu. Ale jeśli tak, upewnij się, że wtyczka gradle jest zdefiniowana jako pierwsza.
Jeśli używasz
testVariants
, upewnij się, że nie dzwonisztestedVariant
na zajęcia. Wydaje się, że jest to przyczyna powstania biblioteki Spoon.Są to, na podstawie tego, co udało mi się stwierdzić, niektóre zmiany wprowadzone w celu rozwiązania problemu.
źródło
Używam wtyczki Play Services Gradle
com.google.gms:google-services
w wersji4.2.0
.W kodzie źródłowym widzimy, że:
Dla mnie to był powód moich ostrzeżeń i nie można go usunąć, dopóki wtyczka nie zostanie naprawiona. Problem jest tutaj
Jak wspomniał @Zoe, może to pochodzić również z innych wtyczek Gradle.
Najlepsza
źródło
Problem został rozwiązany za pomocą wtyczki usług Google w wersji 4.3.0 (rozwiązana za pomocą tego zobowiązania )
Znaleziono tutaj
źródło
Aktualizacja do najnowszej wersji wtyczki Fabric Gradle Plugin rozwiązuje ten problem.
Z dziennika zmian:
https://docs.fabric.io/android/changelog.html#march-15-2018
źródło
W moim przypadku było to spowodowane niedopasowaną wersją bibliotek obsługi Androida. Zaktualizowałem wszystkie moduły do najnowszej wersji (28.0.0) i to rozwiązało problem.
źródło
Po prawidłowym zainstalowaniu Fabric ten problem został rozwiązany
build.gradle
źródło
Miałem ten komunikat o błędzie i wiele innych podobnych
x-version is deprecated and use y-version instead and it'll be removed in 2019
i cały mój projekt nagle zaczął wyświetlać te same komunikaty o błędach.
Studio Android ostrzegało o moim programie antywirusowym. Próbowałem go skonfigurować, ale nie zadziałało.
W końcu odinstalowałem program antywirusowy QuickHeal z mojego systemu i wszystko jest w porządku
źródło
Wszystkie inne odpowiedzi dotyczą problemów z komponentami innych firm .
Oto jak zaktualizować swój projekt, który wykorzystuje
registerResGeneratingTask
bezpośrednio:Przed:
Po:
źródło
Kompilacja na poziomie projektu Grada
Użyj następującej wersji zależności usług Google.
Rozwiązany problem dla mnie.
źródło
Dla mnie to ostrzeżenie zniknęło, gdy wyłączyłem wtyczkę gradle tkaniny, o proszę sprawdzić, czy używasz tkaniny lub innej wtyczki, która jest odpowiedzialna za to ostrzeżenie.
źródło
com.google.gms:google-services
4.0.1
i4.0.2
obie powodują to ostrzeżenie.