Uruchomiłem następujący komentarz:
./gradlew app:installDebug
tylko do spełnienia z dziennikiem:
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine java version from '11.0.2'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
* Get more help at https://help.gradle.org
Moja wersja Gradle to 5.1.1:
------------------------------------------------------------
Gradle 5.1.1
------------------------------------------------------------
Build time: 2019-01-10 23:05:02 UTC
Revision: 3c9abb645fb83932c44e8610642393ad62116807
Kotlin DSL: 1.1.1
Kotlin: 1.3.11
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM: 11.0.2 (Oracle Corporation 11.0.2+9-LTS)
OS: Mac OS X 10.13.6 x86_64
Nie jestem pewien, jak postępować (próbowałem zaktualizować / obniżyć wersję, ale jak dotąd nic nie zadziałało).
AKTUALIZACJA: Kiedy biegałem ./gradlew --version
, otrzymałem następujące informacje:
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine java version from '11.0.2'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
* Get more help at https://help.gradle.org
Moje gradle-wrapper.properties
zawiera:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip
gradle --version
lub./gradlew --version
? Projekty oparte na Gradle często używają opakowania, aby ułatwić różnym programistom użycie tej samej wersji Gradle do zbudowania projektu; dzięki temu kompilacje są bardziej stabilne.gradle --version
Odpowiedzi:
W twoim systemie są dwie różne aplikacje Gradle.
Gradle całego systemu
aplikacja ta jest wywoływana przez
gradle (arguments)
.the gradle-wrapper
Gradle-wrapper jest specyficzny dla każdego projektu i można go wywołać tylko wewnątrz katalogu projektu, używając polecenia
./gradlew (arguments)
.Twoja ogólnosystemowa wersja gradle to 5.1.1 (jak wyjaśnił OP w komentarzach, uruchomienie polecenia
gradle --version
zwróciło wersję 5.1.1).Jednak niepowodzenie jest wynikiem wywołania metody gradle-wrapper (
./gradlew
). Czy możesz sprawdzić wersję opakowania gradle projektu? Aby to zrobić, wykonaj./gradlew --version
w folderze projektu, w katalogu, w którym znajdują się pliki gradlew i gradlew.bat.Aktualizacja 1:
Ponieważ uruchomienie
./gradlew --version
nie powiodło się, możesz ręcznie sprawdzić wersję opakowania, otwierając plik:za pomocą prostego edytora tekstu. Znajdujący się wewnątrz atrybut „distributionUrl” powinien nam powiedzieć, jaka jest wersja opakowania.
Aktualizacja 2: Zgodnie ze zaktualizowanym pytaniem OP, wersja programu gradle-wrapper to 4.1RC1.
Gradle dodał obsługę JDK 11 w Gradle 5.0 . Dlatego, ponieważ 4.1RC nie obsługuje JDK 11, jest to zdecydowanie problem.
Oczywistym sposobem byłoby zaktualizowanie opakowania gradle projektu do wersji 5.0. Jednak przed aktualizacją spróbuj uruchomić
gradle app:installDebug
. Spowoduje to użycie programu Gradle zainstalowanego w całym systemie w wersji 5.1.1 i obsługującego język Java 11. Sprawdź, czy to działa. Jeśli tak, to na skrypt buildscript (plik build.gradle) nie wpływają żadne istotne zmiany między wersją 4.1RC1 a wersją 5.1.1 i możesz zaktualizować opakowanie, wykonując polecenie z wiersza poleceń w folderze projektu:gradle wrapper --gradle-version=5.1.1
[ *].Jeśli
gradle app:installDebug
nie działa poprawnie, być może musisz zaktualizować skrypt kompilacji Gradle. W przypadku aktualizacji z wersji 4.1RC1 do 5.1.1 projekt Gradle zapewnia przewodnik ( 1 , 2 ) zawierający istotne zmiany i przestarzałe funkcje między mniejszymi wydaniami, dzięki czemu można stopniowo aktualizować do najnowszej wersji.Ewentualnie, jeśli z jakiegoś powodu nie możesz lub nie chcesz zaktualizować skryptu kompilacji Gradle, zawsze możesz zdecydować się na zmianę wersji Java na wersję obsługiwaną przez Gradle 4.1RC1.
[*] Jak słusznie wskazał w innej odpowiedzi @lupchiazoem, użyj
gradle wrapper --gradle-version=5.1.1
(a nie./gradlew
tak, jak pierwotnie przez pomyłkę tam zamieściłem). Powodem jest to, że Gradle działa w Javie. Możesz zaktualizować swój Gradle-wrapper używając dowolnej działającej dystrybucji Gradle, zainstalowanej w całym systemie Gradle lub samego Gradle-wrappera. Jednak w tym przypadku twój wrapper nie jest kompatybilny z zainstalowaną wersją Javy, więc musisz użyć systemowego Gradle (akagradle
i nie./gradlew
).źródło
gradle wrapper --gradle-version=5.0
? Zastąp 5.0 żądaną wersją, myślę, że teraz najnowsza to 5.4Jak
distributionUrl
wciąż wskazuje na starszą wersję, zaktualizuj wrapper używając:gradle wrapper --gradle-version 5.1.1
Uwaga: użyj,
gradle
a niegradlew
źródło
gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
wersji 6 na JDK12 nie działa. 5.1.1 działa dobrze, dziękuję.W moim przypadku
JAVA_HOME
zmienna została ustawiona na/usr/lib/jvm/jdk-11.0.2/
. Wystarczyło rozbroić zmienną w ten sposób:$ export JAVA_HOME=
źródło
GRADLE_HOME
został zaktualizowany (do 5.4.1 ''), ale nie wersja gradle (nadal wskazuje na starszą wersję4.3
), co jest dziwne, ale ponowne uruchomienie terminala działało dobrze. coś dziwnegosource ~/.bash_profile
Aktualizacja
gradle/wrapper/gradle-wrapper.properties
za pomocą następującej wersji rozwiązała problem:źródło
tl; dr : obniż wersję javy, uruchamiając
update-alternatives
Moja wersja gradle w systemie to 4.4.1, a wersja wrappera to 4.0. Po uruchomieniu polecenia podanego przez kilka innych odpowiedzi:
Nadal miałem ten sam błąd:
Okazuje się, że java 11 nie była obsługiwana do gradle 4.8, a moje repozytoria oprogramowania miały tylko 4.4.1. (Ponadto aktualizacja do nowszej wersji Gradle mogła być niekompatybilna z pakietem, który próbowałem skompilować).
Odpowiedzią było obniżenie wersji java. Mój system faktycznie miał już zainstalowany java8 i łatwo było przełączać się między wersjami java, uruchamiając to polecenie i postępując zgodnie z instrukcjami:
źródło
Ponieważ wersja wrapper nie obsługuje 11+, możesz zrobić prostą sztuczkę, aby na zawsze oszukać nowszą wersję InteliJ.
https://blog.jetbrains.com/idea/2015/05/intellij-idea-14-1-4-eap-141-1192-is-available/
Lub jeśli chcesz pracować z java 11+, wystarczy zaktualizować wersję wrappera do 4.8+
źródło
Krótko mówiąc, zaktualizuj
gradlew
za pomocągradle
narzędzia systemowego . Zwróć uwagę, że poniższe uaktualnienie działa, nawet jeśligradle
wersja twojego systemu to< 5
.źródło
Tutaj miałem ten sam problem. W moim przypadku muszę użyć starej wersji JDK i używam sdkmanagera do zarządzania wersjami JDK, więc zmieniłem wersję maszyny wirtualnej na 1.8.
Następnie aplikacja działa tutaj zgodnie z oczekiwaniami.
źródło
Miałem ten sam problem. Aktualizacja do klasy 5.0 załatwiła mi sprawę.
Ten link zawiera szczegółowe instrukcje instalacji gradle 5.0: https://linuxize.com/post/how-to-install-gradle-on-ubuntu-18-04/
źródło
Miałem podobny problem: moją domyślną
gradle wrapper
była wersja 4.x, podczas gdy obsługę wyższych wersji Javy dodano w Gradle 5.Zaktualizowałem mój
gradlew
zgodnie z opisem tutaj: https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:upgrading_wrapperTLTD:
źródło
Rozwiązałem to, klikając Plik -> Struktura projektu, a następnie zmieniłem lokalizację JDK, aby użyć osadzonego JDK (zalecane)
źródło
Wpadłem na podobny problem. Usunąłem te:
zawartość folderu kompilacji.
następnie odbudować.
* NIE ZAPOMNIJ W PIERWSZEJ KOPII ZAPASOWEJ SWOJEGO PROJEKTU *
źródło
Napotkałem ten sam problem w Ubuntu 18.04.3 LTS. W moim przypadku apt zainstalował gradle w wersji 4.4.1. Zainstalowana już wersja Java to 11.0.4
Otrzymałem wiadomość dotyczącą kompilacji
W tamtym czasie większość dokumentów online odwoływała się do wersji 5.6 programu Gradle, więc wykonałem następujące czynności:
Następnie powtórzyłem inicjalizację projektu (używając "gradle init" z domyślnymi ustawieniami). Po tym "./gradlew build" działał poprawnie.
Później przeczytałem komentarz dotyczący zmiany formatu wyjścia z "java --version", która spowodowała zerwanie gradle, co zostało naprawione w późniejszej wersji gradle.
źródło
W moim przypadku próbowałem zbudować i pobrać APK dla starego projektu Unity 3D (aby móc grać w tę grę na moim telefonie z Androidem). Używałem najnowszej wersji Android Studio i wszystkich pakietów SDK, które mogłem pobrać za pośrednictwem Menedżera SDK w Android Studio. Pakiety SDK znajdowały się w
Komunikat o błędzie, który otrzymałem, był taki sam, z wyjątkiem wersji JDK (Java Development Kit) „jdk-12.0.2”. JDK znajdował się w
Zmienną środowiskową w systemie Windows była JAVA_HOME: C: \ Program Files \ Java \ jdk-12.0.2
Po 3 godzinach poszukiwań odkryłem, że Unity nie obsługuje JDK 10. Jak powiedziano w
https://forum.unity.com/threads/gradle-build-failed-error-could-not-determine-java-version-from-10-0-1.532169/
. Moja sugestia to:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Computer/This PC>Properties>Advanced System Settings>Environment Variables>New>Variable Name: JAVA_HOME>Variable Value: [YOUR JDK Path, Mine was "C:\Program Files\Java\jdk1.8.0_221"]
Edit > Preferences > External Tools and fill in the JDK path (Mine was "C:\Program Files\Java\jdk1.8.0_221")
.Android Studio > SDK Manager > Android SDK > Android SDK Location
.)źródło
dostałem się do pliku projektu .. gradle / wrapper / gradlewrapper.properties
tam możesz zmienić wartość
distributionurl
na zawsze ostatnią wersję. (Znalezione na docs.gradle.org)źródło
Miałem ten sam problem w konfiguracji Dockera, gdy próbowałem zainstalować
Gradle-2.4
zJDL 11.0.7
. Muszę zainstalować późniejszą wersję, aby naprawić problem.Oto działający plik Dockerfile
źródło