Ejecuté el siguiente comentario:
./gradlew app:installDebug
solo para encontrarse con el registro:
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
Mi versión de gradle es 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
No estoy seguro de cómo proceder (intenté actualizar / degradar, pero nada ha funcionado hasta ahora).
ACTUALIZACIÓN: Cuando corrí ./gradlew --version
, obtuve lo siguiente:
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
Mi gradle-wrapper.properties
contiene:
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
o./gradlew --version
? Los proyectos basados en Gradle a menudo usan un contenedor para facilitar que diferentes desarrolladores usen la misma versión de Gradle para construir el proyecto; esto también hace que las compilaciones sean más estables.gradle --version
Respuestas:
Hay dos aplicaciones Gradle diferentes en su sistema.
Gradle en todo el sistema
Esta aplicación es invocada por
gradle (arguments)
.el gradle-wrapper
El gradle-wrapper es específico para cada proyecto y solo se puede invocar dentro del directorio del proyecto, usando el comando
./gradlew (arguments)
.La versión de gradle de todo el sistema es 5.1.1 (como explicó el OP en los comentarios, ejecutando el comando
gradle --version
devolvió la versión 5.1.1).Sin embargo, el error es el resultado de una llamada al gradle-wrapper (
./gradlew
). ¿Podrías comprobar la versión de envoltura de Gradle de tu proyecto? Para hacer eso, ejecute./gradlew --version
dentro de la carpeta de su proyecto, en el directorio donde están los archivos gradlew y gradlew.bat.Actualización 1: en
ejecución
./gradlew --version
falló, puede verificar manualmente la versión de su contenedor abriendo el archivo:con un editor de texto simple. El "distributionUrl" dentro debería decirnos cuál es la versión del contenedor.
Actualización 2: según la pregunta actualizada del OP, la versión de gradle-wrapper es 4.1RC1.
Gradle agregó soporte para JDK 11 en Gradle 5.0 . Por lo tanto, dado que 4.1RC no es compatible con JDK 11, esto es definitivamente un problema.
La forma obvia sería actualizar el contenedor gradle de su proyecto a la versión 5.0. Sin embargo, antes de actualizar, intente ejecutar
gradle app:installDebug
. Esto usará su Gradle instalado en todo el sistema cuya versión es 5.1.1 y es compatible con Java 11. Vea si esto funciona. Si lo hace, entonces su buildscript (archivo build.gradle) no se ve afectado por ningún cambio importante entre v.4.1RC1 y v.5.1.1 y luego puede actualizar su contenedor ejecutando desde la línea de comando dentro de la carpeta de su proyecto:gradle wrapper --gradle-version=5.1.1
[ *].Si
gradle app:installDebug
no se ejecuta correctamente, tal vez deba actualizar su script de compilación de Gradle. Para actualizar de la v.4.1RC1 a la 5.1.1, el proyecto Gradle proporciona una guía ( 1 , 2 ) con cambios importantes y funciones obsoletas entre versiones menores, para que pueda actualizar gradualmente a la última versión.Alternativamente, si por alguna razón no puede o no desea actualizar su script de compilación de Gradle, siempre puede optar por degradar su versión de Java a una que sea compatible con Gradle 4.1RC1.
[*] Como se señaló correctamente en otra respuesta de @lupchiazoem, use
gradle wrapper --gradle-version=5.1.1
(y no./gradlew
como lo había publicado originalmente allí por error). La razón es que Gradle se ejecuta en Java. Puede actualizar su gradle-wrapper usando cualquier distribución de Gradle que funcione, ya sea su Gradle instalado en todo el sistema o el propio gradle-wrapper. Sin embargo, en este caso, su contenedor no es compatible con su versión de Java instalada, por lo que debe usar Gradle en todo el sistema (también conocido comogradle
y no./gradlew
).fuente
gradle wrapper --gradle-version=5.0
? Reemplace 5.0 con la versión deseada, creo que ahora la última es 5.4Como
distributionUrl
todavía apunta a la versión anterior, actualice el contenedor usando:gradle wrapper --gradle-version 5.1.1
Nota: use
gradle
y nogradlew
fuente
gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
Versión 6 con JDK12 no parece funcionar. 5.1.1 funciona bien, gracias.En mi caso, la
JAVA_HOME
variable se estableció en/usr/lib/jvm/jdk-11.0.2/
. Fue suficiente desarmar la variable de esta manera:$ export JAVA_HOME=
fuente
GRADLE_HOME
se actualizó (a 5.4.1 '') pero no la versión de Gradle (todavía apunta a la versión anterior4.3
), lo cual es extraño, pero reiniciar el terminal funcionó bien. algo extraño consource ~/.bash_profile
La actualización
gradle/wrapper/gradle-wrapper.properties
con la siguiente versión me solucionó:fuente
tl; dr : degradar java ejecutando
update-alternatives
La versión de mi sistema gradle era 4.4.1 y la versión de envoltura de gradle era 4.0. Después de ejecutar el comando dado por varias otras respuestas:
Todavía tenía el mismo error:
Resulta que java 11 no fue compatible hasta gradle 4.8, y mis repositorios de software solo tenían 4.4.1. (Además, la actualización a una versión más reciente de gradle podría haber sido incompatible con el paquete que estaba tratando de compilar).
La respuesta fue degradar java. En realidad, mi sistema ya tenía java8 instalado, y fue fácil cambiar entre versiones de Java ejecutando este comando y siguiendo las instrucciones:
fuente
Debido a que la versión contenedora no es compatible con 11+, puede hacer un truco simple para engañar a la versión más nueva de InteliJ para siempre.
https://blog.jetbrains.com/idea/2015/05/intellij-idea-14-1-4-eap-141-1192-is-available/
O si desea trabajar con java 11+, simplemente tiene que actualizar la versión del contenedor a 4.8+
fuente
Para abreviar la respuesta larga, actualice su
gradlew
usando lagradle
herramienta del sistema . Tenga en cuenta que la siguiente actualización funciona incluso si lagradle
versión de su sistema es< 5
.fuente
Tuve el mismo problema aquí. En mi caso, necesito usar una versión anterior de JDK y estoy usando sdkmanager para administrar las versiones de JDK, así que cambié la versión de la máquina virtual a 1.8.
Después de eso, la aplicación se ejecuta como se esperaba aquí.
fuente
Tuve el mismo problema. La actualización a Gradle 5.0 funcionó para mí.
Este enlace proporciona pasos detallados sobre cómo instalar gradle 5.0: https://linuxize.com/post/how-to-install-gradle-on-ubuntu-18-04/
fuente
Tuve un problema similar: mi
gradle wrapper
versión predeterminada era 4.x, mientras que la compatibilidad con versiones superiores de Java se agregó en Gradle 5.Actualicé mi
gradlew
como se describe aquí: https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:upgrading_wrapperTLTD:
fuente
Resolví esto haciendo clic en Archivo -> Estructura del proyecto y luego cambié la ubicación de JDK para usar JDK incrustado (recomendado)
fuente
Me encontré con un problema similar. Borré estos:
contenido de la carpeta de compilación.
luego reconstruir.
* NO OLVIDE HACER UNA COPIA DE SEGURIDAD DE SU PROYECTO PRIMERO *
fuente
Me encontré con el mismo problema en Ubuntu 18.04.3 LTS. En mi caso, apt instaló gradle versión 4.4.1. La versión de Java ya instalada era la 11.0.4
El mensaje de compilación que recibí fue
En ese momento, la mayoría de los documentos en línea hacían referencia a la versión 5.6 de gradle, así que hice lo siguiente:
Luego repetí la inicialización del proyecto (usando "gradle init" con los valores predeterminados). Después de eso, "./gradlew build" funcionó correctamente.
Más tarde leí un comentario sobre un cambio en el formato de la salida de "java --version" que causó que gradle se rompiera, lo cual se corrigió en una versión posterior de gradle.
fuente
En mi caso, estaba intentando compilar y obtener APK para un antiguo proyecto de Unity 3D (para poder jugar el juego en mi teléfono Android). Estaba usando la versión más reciente de Android Studio y todos los paquetes de SDK que pude descargar a través de SDK Manager en Android Studio. Los paquetes SDK estaban ubicados en
Y el mensaje de error que recibí fue el mismo, excepto la versión "jdk-12.0.2" de JDK (Java Development Kit). JDK estaba ubicado en
Y la variable de entorno en Windows era JAVA_HOME: C: \ Archivos de programa \ Java \ jdk-12.0.2
Después de 3 horas de investigación, descubrí que Unity no es compatible con JDK 10. Como se dice en
https://forum.unity.com/threads/gradle-build-failed-error-could-not-determine-java-version-from-10-0-1.532169/
. Mi sugerencia es: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
.)fuente
llegó al archivo de proyecto .. gradle / wrapper / gradlewrapper.properties
allí puede cambiar el valor de
distributionurl
a la última versión. (Encontrado en docs.gradle.org)fuente
Enfrentaba el mismo problema en la configuración de Docker, mientras intentaba instalar
Gradle-2.4
conJDL 11.0.7
. Tengo que instalar una versión posterior para solucionar el problema.Aquí está el Dockerfile de trabajo
fuente