Podczas instalowania programu „React-native init AwesomeProject” pojawia się ten błąd, gdy uruchamiam react-native run-android
:
Could not determine java version from '11.0.1'.
Szybkie wyszukiwanie w Google sugeruje, że muszę zaktualizować zawartość distributionUrl
w opakowaniu Gradle. Po wykonaniu tej czynności mam do czynienia z nowym błędem:
Cannot add task 'wrapper' as a task with that name already exists.
Sugeruje, że problem znajduje się w pliku:
/AwesomeProject/android/build.gradle' line: 36
który wygląda tak
task wrapper(type: Wrapper) {
gradleVersion = '4.4'
distributionUrl = distributionUrl.replace("bin", "all")
}
W kółko próbowałem dowiedzieć się, co to robi. Wydaje się dziwne, że coś nie zadziała od razu po wyjęciu z pudełka. Czy ktoś ma podobny problem?
Odpowiedzi:
Możesz także zaktualizować
do
Tak jak
zobacz ostatni akapit Zadania i właściwości : https://docs.gradle.org/5.2.1/userguide/upgrading_version_4.html
i dostosowywanie zadania Wrapper : https://docs.gradle.org/5.2.1/userguide/gradle_wrapper.html#customizing_wrapper
źródło
której wersji gradle używasz w swoim środowisku?
Jeśli używasz gradle w wersji 5.x, musisz zmodyfikować 「opakowanie zadania」 jak poniżej.
↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓
źródło
Jak wspomniano w komentarzach poniżej - https://stackoverflow.com/a/46867575/4982729 :
Otwórz i edytuj plik
app-folder/android/gradle/wrapper/gradle-wrapper.properties
; zaktualizuj linięW pliku
AwesomeProject/android/build.gradle
spróbuj wykomentowaćźródło
jeśli plik „gradle-wrapper.properties” ma już te kody
następnie możesz usunąć
z build.gradle
źródło
Mam ten sam problem. problem w moim kodzie polegał na podwójnej deklaracji innego pliku Gradle w build.gradle
build.gradle
źródło
Istnieje duże prawdopodobieństwo, że masz "zadanie" do uruchomienia w pliku build.gradle, idź i usuń wiersz związany z opakowaniem (łącznie z jego nawiasem itd.). Następnie, jeśli używasz IntelliJ, automatycznie przeniesie nowy do katalogu roboczego.
źródło
Wystąpił problem, ponieważ uruchamiałem zadanie przy użyciu globalnego gradle, a nie lokalnego opakowania gradle.
tj. w moim bieżącym katalogu miałem
gradlew
plik wykonywalny.Ale uruchomiłem to polecenie:
Kiedy powinienem biec:
Prawdopodobnie dlatego, że uruchamianie globalnego gradle próbuje utworzyć lokalny wrapper - a taki już istniał.
źródło