2017-10-27 31 views
57

Korzystanie z nowego studia Android z nowym plusem 3.0.0 Gradle. Podczas budowania ostrzeżenia się stałoRegisterResGeneratingTask jest przestarzałe, użyj registerGeneratedFolders (FileCollection)

registerResGeneratingTask is deprecated, use 
registerGeneratedFolders(FileCollection) 

Szukałem dużo google! Pomóż naprawić to ostrzeżenie!

+0

Czy możesz pokazać swoje zadania gradle? czy masz podziały APK? – itzhar

+0

proszę pokazać swoje Gradle –

+0

Czy widziałeś [ten artykuł] (https://github.com/flutter/flutter/issues/10629) opisujący dokładny problem (znany problem) i obejście tego problemu? (Pierwsze trafienie w Google). – ashleedawg

Odpowiedz

0

Dla mnie to ostrzeżenie zniknęło, gdy wyłączyłem wtyczkę grading fabric, o sprawdź, czy używasz tkaniny lub innej wtyczki, która jest odpowiedzialna za to ostrzeżenie.

+0

Usunięto materiał, ale nadal pojawia się to ostrzeżenie. –

+0

Nie używam tkaniny i mam tę wiadomość! – thiagolr

+1

Wyłączenie wtyczki io.fabric zredukowało 8 z tych ostrzeżeń do 4. Wydaje się, że jest więcej niż jedno źródło. –

4

Z tego, co wiem, wtyczki dodane jako zależności od classpath dadzą problemy. To znaczy. Firebase miał problem z tym. Spoon i Flutter. Wykonanie this Google search ujawnia wiele repozytoriów GitHub z kwestią poruszoną w tym samym temacie, a wszystko, co ich łączy, to fakt, że jest to wtyczka Gradle. Tkanina również wydaje się być przyczyną, o której wspominał: Mate *

Z tego co wiem, problem pochodzi z wtyczki/wielu Gradle. Może być również wywołany przez twój kod Gradle, ale najprawdopodobniej nie ma to zastosowania, jeśli twój projekt jest aplikacją, a nie wtyczką Gradle.

Jak wspomniano w komentarzu pod numerem Alex Cohn, wycofanie jest ostrzeżeniem. W tym przypadku oznacza to, że jest to funkcja, która ostatecznie zostanie usunięta. Na razie zakładając, że jest to wtyczka (i nie jest przez ciebie stworzona), możesz ją zignorować. Do czasu jego usunięcia większość/wszystkie główne wtyczki powinny zostać zaktualizowane, aby to naprawić.

I ponownie, to ostrzeżenie; nie jest błędem. Nadal możesz go uruchomić i zignorować, jeśli nic nie możesz zrobić w tej sprawie. Wyłączanie, np. wtyczka Fabric * jest przesadna, ponieważ nadal działa.

I nie używać tkaniny siebie, a tkanina nie jest open-source, więc nie wiem, czy twórcy stałe lub nie

TL; DR: Gradle wtyczki są przyczyna. Jest to ostrzeżenie (nie błąd), więc usunięcie wtyczek, które powodują problem, jest przesadzone. Jeśli nie można go naprawić, należy pozostawić go w spokoju tak długo, jak to jest przestarzała tylko na chwilę (nie usunięte)


Jeśli używasz Firebase, istnieje szczególne rozwiązanie do niego, który jest również wymienione w migracji przewodnik (link później w tym poście); wykluczyć moduł guawy

classpath ('com.google.firebase:firebase-plugins:1.1.0') { 
    exclude group: 'com.google.guava', module: 'guava-jdk5' 
} 

Sam problem jest dość trudne do wykrycia. Z tego, co wiem, nie ma jednego problemu, który powodowałby go we wszystkich wtyczkach, które sprawdziłem (i połączonych w tej odpowiedzi). Jeśli zakodowałeś coś, co powoduje problem (i można go naprawić, dodanie wtyczki gradle innej firmy nie powoduje tego), jest kilka rzeczy, które możesz spróbować naprawić.

Z tego, co mogę powiedzieć, co do rzeczywistej przyczyny, rozwiązano ją przez aktualizację pliku Gradle (chociaż w bibliotece Łyżka została ona naprawiona poprzez zmianę linii związanej z TestVariant), postępując zgodnie z tematami w plugin Gradle 3.0. 0 poradnik migracji.

Cała sprawa jest objęta by the developer docs, ale oto niektóre z rzeczy, myślę, że jest istotne na podstawie wniosków pociągowych odbywa się na projektach, gdzie to było problemem:

Poza aktualizacją wersji Gradle i wtyczki, trzeba także aby dodać repozytorium google() pod numerem repositories.

compile jest teraz implementation lub api, ale zalecany jest implementation.

provided jest compileOnly i apk jest runtimeOnly

androidTestCompile stała androidTestImplementation i testCompile ->testImplementation

Jeśli używasz smaki, trzeba użyć wymiary smakowe (objęte docs).

Dla typów kompilacji należy uwzględnić awarie w przypadku, gdy istnieje biblioteka, która nie ma tego typu kompilacji. Są one zdefiniowane w bloku profile pod blokiem .

Jeśli jeszcze tego nie zrobiłeś, wtyczka gradle musi zostać zdefiniowana jako pierwsza. Jeśli nie masz żadnych innych zależności od classpath, nie jest to problemem. Ale jeśli tak, upewnij się, że wtyczka gradle jest zdefiniowana jako pierwsza.

Jeśli używasz testVariants, upewnij się, że nie wywołujesz testedVariant w klasie. Wydaje się być przyczyną biblioteki Spoon.

Te rzeczy są, z tego, co udało mi się przekazać, niektórymi zmianami wprowadzonymi w celu rozwiązania problemu.

Powiązane problemy