Я написал следующий комментарий:
./gradlew app:installDebug
только встретиться с журналом:
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
Моя версия gradle - 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
Я не знаю, что делать дальше (я пробовал перейти на более раннюю версию, но пока ничего не помогло).
ОБНОВЛЕНИЕ: Когда я побежал ./gradlew --version
, то получил следующее:
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
Мой gradle-wrapper.properties
содержит:
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
или./gradlew --version
? В проектах на основе Gradle часто используется оболочка, чтобы разным разработчикам было проще использовать одну и ту же версию Gradle для сборки проекта; это также делает сборки более стабильными.gradle --version
Ответы:
В вашей системе есть два разных приложения Gradle.
общесистемный Gradle
Это приложение вызывается
gradle (arguments)
.Gradle-обертка
The Gradle-обертка специфичен для каждого проекта и может быть использован только в директории проекта, используя команду
./gradlew (arguments)
.Ваша общесистемная версия gradle - 5.1.1 (как OP объяснил в комментариях, выполнение команды
gradle --version
вернуло версию 5.1.1).Однако сбой является результатом вызова gradle-wrapper (
./gradlew
). Не могли бы вы проверить версию оболочки Gradle вашего проекта? Для этого выполните./gradlew --version
в папке вашего проекта, в каталоге, где находятся файлы gradlew и gradlew.bat.Обновление
1.Поскольку запуск завершился
./gradlew --version
неудачно, вы можете вручную проверить версию своей оболочки, открыв файл:с помощью простого текстового редактора. «DistributionUrl» внутри должен сообщить нам, какая версия оболочки.
Обновление 2: согласно обновленному вопросу OP версия gradle-wrapper - 4.1RC1.
Gradle добавил поддержку JDK 11 в Gradle 5.0 . Следовательно, поскольку 4.1RC не поддерживает JDK 11, это определенно проблема.
Очевидный способ - обновить gradle-wrapper вашего проекта до версии 5.0. Однако перед обновлением попробуйте запустить
gradle app:installDebug
. Это будет использовать ваш установленный в системе Gradle версии 5.1.1 и поддерживающий Java 11. Посмотрите, работает ли это. Если это так, то на ваш скрипт сборки (файл build.gradle) не повлияют какие-либо критические изменения между v.4.1RC1 и v.5.1.1, и вы можете затем обновить свою оболочку, выполнив из командной строки внутри папки вашего проекта:gradle wrapper --gradle-version=5.1.1
[ *].Если
gradle app:installDebug
не удается выполнить правильно, возможно, вам нужно обновить скрипт сборки Gradle. Для обновления с v.4.1RC1 до 5.1.1 проект Gradle предоставляет руководство ( 1 , 2 ) с критическими изменениями и устаревшими функциями между второстепенными выпусками, так что вы можете постепенно обновляться до последней версии.В качестве альтернативы, если по какой-то причине вы не можете или не хотите обновлять скрипт сборки Gradle, вы всегда можете понизить версию Java до той, которую поддерживает Gradle 4.1RC1.
[*] Как правильно указано в другом ответе @lupchiazoem, используйте
gradle wrapper --gradle-version=5.1.1
(а не так,./gradlew
как я изначально отправил туда по ошибке). Причина в том, что Gradle работает на Java. Вы можете обновить свою gradle-wrapper, используя любой рабочий дистрибутив Gradle, будь то Gradle, установленный в вашей системе, или сам gradle-wrapper. Однако в этом случае ваша оболочка несовместима с вашей установленной версией Java, поэтому вам нужно использовать общесистемный Gradle (он жеgradle
и нет./gradlew
).источник
gradle wrapper --gradle-version=5.0
? Замените 5.0 желаемой версией, я думаю, теперь последняя версия 5.4Поскольку
distributionUrl
все еще указывается на более старую версию, обновите оболочку, используя:gradle wrapper --gradle-version 5.1.1
Примечание: используйте,
gradle
а неgradlew
источник
gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
версии 6 на JDK12, похоже, не работает. 5.1.1 работает нормально, спасибо.В моем случае для
JAVA_HOME
переменной было установлено значение/usr/lib/jvm/jdk-11.0.2/
. Достаточно было отключить переменную следующим образом:$ export JAVA_HOME=
источник
GRADLE_HOME
был обновлен (до 5.4.1 ''), но не версия gradle (все еще указывающая на более старую версию4.3
), что странно, но перезапуск терминала работал нормально. что-то странное сsource ~/.bash_profile
Обновление
gradle/wrapper/gradle-wrapper.properties
до следующей версии исправило это для меня:источник
tl; dr : перейти на более раннюю версию Java, запустив
update-alternatives
Моя системная версия Gradle была 4.4.1, а версия оболочки Gradle была 4.0. После выполнения команды, заданной несколькими другими ответами:
У меня все еще была та же ошибка:
Оказывается, java 11 не поддерживался до версии Gradle 4.8, а в моих репозиториях программного обеспечения была только версия 4.4.1. (Кроме того, обновление до более новой версии Gradle могло быть несовместимо с пакетом, который я пытался скомпилировать.)
Ответ заключался в том, чтобы понизить версию java. В моей системе уже был установлен java8, и было легко переключаться между версиями java, выполнив эту команду и следуя инструкциям:
источник
Поскольку версия оболочки не поддерживает 11+, вы можете использовать простой трюк, чтобы навсегда обмануть новую версию InteliJ.
https://blog.jetbrains.com/idea/2015/05/intellij-idea-14-1-4-eap-141-1192-is-available/
Или, если вы хотите работать с java 11+, вам просто нужно обновить версию оболочки до 4.8+
источник
Чтобы короче длинный ответ, обновите свой
gradlew
системныйgradle
инструмент. Обратите внимание, что приведенное ниже обновление работает, даже еслиgradle
версия вашей системы< 5
.источник
У меня здесь была такая же проблема. В моем случае мне нужно использовать старую версию JDK, и я использую sdkmanager для управления версиями JDK, поэтому я изменил версию виртуальной машины на 1.8.
После этого приложение здесь работает как положено.
источник
У меня была такая же проблема. Обновление до версии 5.0 помогло мне.
Эта ссылка содержит подробные инструкции по установке gradle 5.0: https://linuxize.com/post/how-to-install-gradle-on-ubuntu-18-04/
источник
У меня была аналогичная проблема: по умолчанию
gradle wrapper
была версия 4.x, в то время как поддержка более высоких версий Java была добавлена в Gradle 5.Я обновил свой,
gradlew
как описано здесь: https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:upgrading_wrapperTLTD:
источник
Я решил это, щелкнув Файл -> Структура проекта, затем изменил расположение JDK на использование встроенного JDK (рекомендуется)
источник
Я столкнулся с подобной проблемой. Я удалил эти:
содержимое папки сборки.
затем перестройте.
* НЕ ЗАБУДЬТЕ СНАЧАЛА РЕЗЕРВИРОВАТЬ СВОЙ ПРОЕКТ *
источник
Я столкнулся с той же проблемой в Ubuntu 18.04.3 LTS. В моем случае apt установил версию Gradle 4.4.1. Уже установленная версия Java была 11.0.4.
Сообщение сборки, которое я получил, было
В то время большинство онлайн-документов ссылались на версию Gradle 5.6, поэтому я сделал следующее:
Затем я повторил инициализацию проекта (используя "gradle init" со значениями по умолчанию). После этого "./gradlew build" работала корректно.
Позже я прочитал комментарий об изменении формата вывода из "java --version", которое привело к сбою gradle, что было исправлено в более поздней версии gradle.
источник
В моем случае я пытался собрать и получить APK для старого проекта Unity 3D (чтобы я мог играть в игру на своем телефоне Android). Я использовал самую последнюю версию Android Studio и все пакеты SDK, которые я мог загрузить через SDK Manager в Android Studio. Пакеты SDK находились в
И сообщение об ошибке, которое я получил, было таким же, за исключением версии JDK (Java Development Kit) «jdk-12.0.2». JDK находился в
И переменная среды в Windows была JAVA_HOME: C: \ Program Files \ Java \ jdk-12.0.2
После 3 часов исследования я обнаружил, что Unity не поддерживает JDK 10. Как сказано в
https://forum.unity.com/threads/gradle-build-failed-error-could-not-determine-java-version-from-10-0-1.532169/
. Мое предложение: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
.)источник
попал в файл проекта .. gradle / wrapper / gradlewrapper.properties
там вы можете изменить значение
distributionurl
на самую последнюю версию. (Найдено на docs.gradle.org)источник
Я столкнулся с той же проблемой при установке Docker, когда пытался установить
Gradle-2.4
с помощьюJDL 11.0.7
. Мне нужно установить более позднюю версию, чтобы решить эту проблему.Вот рабочий Dockerfile
источник