Ejecuté el siguiente comentario:
./gradlew app:installDebugsolo 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.orgMi 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_64No estoy seguro de cómo proceder (intenté actualizar/degradar, pero nada ha funcionado hasta ahora).
ACTUALIZACIÓN: cuando ejecuté ./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/gradle-wrapper.properties contiene lo siguiente, incluido distributionUrl=.../gradle-4.1-rc-1-all.zip :
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.zipDirígete a android/gradle/wrapper/gradle-wrapper.properties y actualiza la URL de distributionUrl con la última versión de gradle.
Vaya a https://gradle.org/releases/ para obtener la última versión, luego edítela aquí.
https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
7.3.3 siendo la última versión lanzada.
https\://services.gradle.org/distributions/gradle-#latest_gradle-version#-all.zip
Vaya a Project/gradle/wrapper/gradle-wrapper.properties y cambie manualmente la URL de distribución a distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip y funcionó Espero que esto ayude a alguien .
Es posible que no haya instalado maven, instale maven y luego verifique. funcionará después....
Como han mencionado otros, se agregó compatibilidad con Java 11 en Gradle 5. La solución es actualizar su contenedor de Gradle:
Vaya aquí para descubrir la última versión de Gradle: https://gradle.org/releases/
Actualizar el contenedor de Gradle
Si tiene Gradle instalado en su máquina:
gradle wrapper --gradle-version 7.2Si no tienes Gradle instalado:
Modificar gradle/wrapper/gradle-wrapper.properties
Actualice distributionUrl con la última versión de Gradle, por ejemplo
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zipActualice los archivos de contenedor restantes (gradle-wrapper.jar, gradlew, gradlew.bat)
./gradlew wrapper --gradle-version 7.2Dado que está actualizando desde una versión anterior de Gradle, probablemente obtendrá errores como estos:
Could not find method compile() for arguments ... Could not find method testCompile() for arguments ... Para corregir esto, edite build.gradle y reemplace cada instancia de compile con implementation y reemplace testCompile con testImplementation .
Lo más simple para una prueba rápida y sucia es simplemente usar una anulación, por ejemplo:
> JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/ ./gradlew build dado que el contenedor verifica JAVA_HOME , puede elegir el que desee en cada ejecución.
Tengo un problema similar en Windows con la versión redhat java-11, edité gradle-wrapper.properties y actualicé la distribuciónUrl como se muestra a continuación con gradle-6.5.1-bin.zip y funciona para mí.
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-bin.zipcordova build android --releasePude resolver esto, después de probar tantas cosas diferentes, simplemente haciendo:
npm install cordova -g # to upgrade to version 10.0.0 cordova platform rm android cordova platform add android # to upgrade to android version 9.0.0Tuve el mismo problema en Windows. Mi configuración de Gradle fue establecer el uso de JDK1.8, pero JAVA_HOME estaba configurado para usar otro JDK.
Solución:
Establezca JAVA_HOME correctamente en función de su JDK configurado en gradle
Si tiene Android Studio versión 4.2.2, comienza como Java 11.0.8 predeterminado
Consulta tu versión Android Studio -> About Android Studio
Cambiar 11.0.8 a JDK 8
1- Instalar el JDK8
2- Instala el complemento Elegir tiempo de ejecución
3- Abrir pestaña de acción: Comando + Shift + A ⇧⌘A
4- Elija el tiempo de ejecución y seleccione jdk 8 en la lista
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 11.0.4
El mensaje de compilación que recibí fue
Could not determine java version from '11.0.4'.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:
sudo add-apt-repository ppa:cwchien/gradle sudo apt update sudo apt upgrade gradle 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 provocó que se rompiera gradle, que se solucionó en una versión posterior de gradle.
Para abreviar la respuesta larga, actualice su gradlew usando la herramienta gradle del sistema. Tenga en cuenta que la siguiente actualización funciona incluso si la versión de gradle de su sistema es < 5 .
gradle wrapper --gradle-version=5.1.1En mi caso, estaba tratando de compilar y obtener APK para un proyecto antiguo 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 SDK que podía descargar a través de SDK Manager en Android Studio. Paquetes SDK se encuentra en
C:/Users/Onat/AppData/Local/Android/SdkY el mensaje de error que recibí fue el mismo, excepto la versión JDK (Java Development Kit) "jdk-12.0.2". JDK estaba ubicado en
C:\Program Files\Java\jdk-12.0.2 Y la variable de entorno en Windows era JAVA_HOME : C:\Program Files\Java\jdk-12.0.2
Después de 3 horas de investigación, descubrí que Unity no es compatible con JDK 10, como se indica aquí . Mi sugerencia es:
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 ).tl; dr : degradar java ejecutando update-alternatives
La versión de Gradle de mi sistema era 4.4.1 y la versión de contenedor de Gradle era 4.0. Después de ejecutar el comando dado por varias otras respuestas:
gradle wrapper --gradle-version 4.4.1Todavía tenía el mismo error:
FAILURE: Build failed with an exception. * What went wrong: Could not determine java version from '11.0.4'.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 nueva de Gradle podría haber sido incompatible con el paquete que estaba tratando de compilar).
La respuesta fue degradar Java. De hecho, mi sistema ya tenía Java8 instalado, y fue fácil cambiar entre las versiones de Java ejecutando este comando y siguiendo las instrucciones:
sudo update-alternatives --config javaActualizar gradle/wrapper/gradle-wrapper.properties con la siguiente versión me lo arregló:
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zipEstaba enfrentando el mismo problema en la configuración de Docker, mientras intentaba instalar Gradle-2.4 con JDL 11.0.7 . Tengo que instalar una versión posterior para solucionar el problema.
Aquí está el Dockerfile de trabajo
FROM openjdk:11.0.7-jdk RUN apt-get update && apt-get install -y unzip WORKDIR /gradle RUN curl -L https://services.gradle.org/distributions/gradle-6.5.1-bin.zip -o gradle-6.5.1-bin.zip RUN unzip gradle-6.5.1-bin.zip ENV GRADLE_HOME=/gradle/gradle-6.5.1 ENV PATH=$PATH:$GRADLE_HOME/bin RUN gradle --versionComo distributionUrl todavía apunta a una versión anterior, actualice el contenedor usando:
gradle wrapper --gradle-version 5.1.1
Nota: use gradle y no gradlew
Hay dos aplicaciones diferentes de Gradle en su sistema.
Gradle en todo el sistema
Esta aplicación es invocada por gradle (arguments) .
el envoltorio gradle
El gradle-wrapper es específico para cada proyecto y solo se puede invocar dentro del directorio del proyecto, usando el comando ./gradlew (arguments) .
Su versión de gradle para todo el sistema es 5.1.1 (como explicó el OP en los comentarios, al ejecutar el comando gradle --version devolvió la versión 5.1.1).
Sin embargo, la falla es el resultado de una llamada al gradle-wrapper ( ./gradlew ). ¿Podría verificar la versión del contenedor gradle de su 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:
Como falló la ejecución de ./gradlew --version , puede verificar manualmente la versión de su envoltorio abriendo el archivo:
(carpeta raíz del proyecto)/gradle/wrapper/gradle-wrapper.properties
con un sencillo editor de texto. El interior "distributionUrl" 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 admite la ejecución en JDK 11, definitivamente es un problema.
La forma obvia sería actualizar el gradle-wrapper de su proyecto a la versión 5.0.
Sin embargo, antes de actualizar, intente ejecutar gradle app:installDebug . Esto utilizará su Gradle instalado en todo el sistema, cuya versión es 5.1.1 y admite la ejecución en Java 11. Si esto funciona, entonces su script de compilación (archivo build.gradle) no se verá 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, entonces tal vez necesite actualizar su script de compilación de Gradle. Para actualizar de v.4.1RC1 a 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 quiere actualizar su script de compilación de Gradle, siempre puede optar por degradar su versión de Java a una que admita la ejecución de Gradle 4.1RC1.
[*] Como se señaló correctamente en la respuesta de @lupchiazoem , use gradle wrapper --gradle-version=5.1.1 (y no ./gradlew como lo publiqué 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 como gradle y no ./gradlew ).
En mi caso, la variable JAVA_HOME se configuró en /usr/lib/jvm/jdk-11.0.2/ . Fue suficiente para desarmar la variable de esta manera:
$ export JAVA_HOME=
He tenido el mismo problema. Actualizar a gradle 5.0 funcionó para mí.
Este enlace proporciona pasos detallados sobre cómo instalar gradle 5.0
Me encontré con un problema similar. Borré estos:
contenido de la carpeta de compilación.
luego reconstruir.
* NO OLVIDES HACER RESPALDO DE TU PROYECTO PRIMERO *
Debido a que su versión de contenedor no es compatible con 11+, puede hacer un truco simple para engañar a la versión más nueva de InteliJ para siempre .
press3x Shift -> type "Switch Boot JDK" -> and change for java 8.O si desea trabajar con Java 11+, simplemente debe actualizar la versión de contenedor a 4.8+
Tuve un problema similar: mi gradle wrapper predeterminado era la versión 4.x, mientras que el soporte para 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_wrapper
TLTD:
./gradlew wrapper --gradle-version 5.6.2Resolví esto haciendo clic en Archivo -> Estructura del proyecto y luego cambié la ubicación de JDK para usar JDK integrado (recomendado)
Llegué al archivo del proyecto... gradle/wrapper/gradlewrapper.properties
allí puede cambiar el valor de distributionurl a la última versión. (Encontrado en docs.gradle.org )
Tuve el mismo problema aquí. En mi caso necesito usar una versión antigua de JDK y estoy usando sdkmanager para administrar las versiones de JDK, entonces cambié la versión de la máquina virtual a 1.8.
sdk use java 8.0.222.j9-adptDespués de eso, la aplicación se ejecuta como se esperaba aquí.