Error de React Native: "No se pudo determinar la versión de Java desde '9.0.1'".


108

Estoy trabajando en MacOS y estoy empezando react-native.

Uno de los primeros pasos para comenzar es ejecutar: react-native run-androido react-native run-ios. Pero recibo este error:

react-native run-android

Resultado:

Scanning folders for symlinks in /Users/ric/myprojs/albums/node_modules (6ms)
Starting JS server...
Building and installing the app on the device (cd android && ./gradlew installDebug)...

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '9.0.1'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/android-setup.html

Esto es lo que obtengo cuando corro java --version:

java --version

Resultado:

java 9.0.1
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
mbp:albums ric$ java --version
java 9.0.1
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

Editar

Mi versión de javac:

javac --version

Resultado:

javac 9.0.1

Alguna idea de como arreglar esto?


2
¿Puedes correr javac -versiontambién en la terminal, por favor
Bennygenel

1
Encontré que este problema es un poco antiguo, pero podría estar relacionado con la versión de Java o Gradle.
bennygenel

Respuestas:


205

En su PROJECT_PATH/android/gradle/wrapper/gradle-wrapper.propertiesarchivo, actualice sudistributionUrl a lo siguiente:

distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-all.zip

Consulte la documentación relacionada con las distribuciones de Gradle


4
debe estar en la carpeta de aplicaciones / android / gradle / wrapper / gradle-wrapper.properties
Muhammad Adeel

6
Después de cambiar la versión de Gradle a su sugerencia, me da otro error: No se pudo inicializar la clase com.android.sdklib.repository.AndroidSdkHandler
leMale

7
Sin embargo, ¿por qué esto ayuda? React-Native usa gradle-2.14.1 de forma predeterminada cuando inicia una nueva aplicación, entonces, ¿por qué necesitamos una diferente?
Waltari

11
obteniendo este error después de agregar esto> javax / xml / bind / annotation / XmlSchema
Milon

15
Debe utilizar la última versión de Gradle. Por ejemplo, para admitir Java 11, puede usargradle-4.10-all.zip
Andrey Kolpakov


15

Asegúrese de que ha JDK8instalado y luego fijar JAVA_HOMEenJDK8

por ejemplo:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home

o use .bash_*archivos para establecer esta variable


1
Tenía esto en mi .zshrc en Mac: export JAVA_HOME=$(/usr/libexec/java_home) Si lo cambia a export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)selecciones de la última versión instalada de v8 de Java, y se fija este mismo tema.
Greg Haygood

8
vi ~/.bash_profile

Luego agregue las siguientes líneas:

export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

Ahora obtenga el archivo para que los cambios anteriores sean efectivos en el shell actual:

source ~/.bash_profile 

1
Esta última línea me export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)solucionó las cosas - ¡Gracias!
JohnSalzarulo

7

En MacOS, ejecuté los siguientes comandos:

brew cask uninstall java
brew tap caskroom/versions
brew cask install java8 "or just brew cask install java to install latest version"

3

Recibí este error, pero para una versión más reciente de Java: 10.0.2.

Para corregir mi error, seguí los pasos mencionados @Blacktovicheen este problema de Github: https://github.com/facebook/react-native/issues/17688

Cuando abrí la androidcarpeta dentro de mi proyecto a través de Android Studio, se me solicitó Android Gradle plugin update recommended. En ese momento, estaba siguiendo un tutorial un poco desactualizado que me decía que hiciera clic Don't remind me again for this project.

Sin embargo, como se @Blacktovicherecomienda en el problema de github vinculado anteriormente, a veces es necesario actualizar el complemento de Gradle. Después de la actualización, también tuve que hacer clic Install Build Tools 27... and sync project(no recuerdo la versión exacta).

Después de seguir estos pasos, pude ejecutar con éxito mi aplicación nativa de reacción en el emulador de Android Studio.

¡Espero que esto ayude a alguien!


1

---- Diciembre de 2018 --- preste atención --- React Native no funciona con versiones de Java superiores a la 8, por lo que debe desinstalar su 9.0.1versión. Para hacerlo, ejecute los siguientes comandos:

cd /Library/Java/JavaVirtualMachines/
ls -l

Identifique la carpeta que contiene su versión de Java, luego elimínela

sudo rm -rf jdk.x.x_xxx.jdk

Después de eso, puede descargar e instalar java 8 desde Oracle nuevamente. Consulte la página de descarga de jdk8


"React Native no funciona con versiones de Java superiores a 8" absolutamente incorrecto. Tengo una compilación que se ejecuta en JDK 13 en este momento.
Ian Kemp

Mi respuesta es de DICIEMBRE 2018. Obtenga React Native de 2018, y luego ejecútelo en un JDK 13 y luego, si funciona, venga aquí y actualice su respuesta.
Guilherme Ferreira

0

Si está utilizando Windows; Asegúrese de agregar su ruta jdk a la variable de ruta del entorno. Luego abra su carpeta de Android desde su proyecto nativo de reacción en Android Studio. Actualizará las cosas necesarias para usted automáticamente.


0

Por lo general, obtengo este error cuando me olvido de compilar el proyecto con Android Studio. Una simple sincronización y actualización de Gradle hará el trabajo.



0

En Ubuntu, debe ejecutar estas líneas de comando en la terminal:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt install oracle-java8-installer
sudo apt install oracle-java8-set-default
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.