108 votes

Erreur React Native : "Impossible de déterminer la version de Java à partir de '9.0.1'."

Je travaille sur MacOS et je commence juste avec react-native .

L'une des premières étapes pour commencer est de courir : react-native run-android ou react-native run-ios . Mais j'obtiens cette erreur :

react-native run-android

Résultat :

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

C'est ce que j'obtiens quand je cours java --version :

java --version

Résultat :

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)

Modifier

Ma version de javac :

javac --version

Résultat :

javac 9.0.1

Une idée sur la façon de résoudre ce problème ?

2 votes

Pouvez-vous exécuter javac -version aussi dans le terminal s'il vous plaît

1 votes

J'ai trouvé cette question C'est un peu ancien mais cela peut être lié à la version de java ou de gradle.

209voto

Muhammad Adeel Points 1850

Dans votre PROJECT_PATH/android/gradle/wrapper/gradle-wrapper.properties mettez à jour votre distributionUrl à ce qui suit :

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

Voir le lien documentation sur les distributions de gradle

0 votes

Où puis-je trouver ce gradle.wrapper.properties fichier ? Merci

4 votes

Devrait être dans app-folder/Android/gradle/wrapper/gradle-wrapper.properties

0 votes

Merci ! Cela a réglé mon problème. Pour une raison quelconque, j'avais l'ancienne version gradle-2.14.1-all.zip

24voto

Xen_mar Points 750

Le moyen le plus rapide de contourner cette erreur est d'utiliser le JDK 8. Sauf si vous avez vraiment besoin d'utiliser le JDK9.

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

N'oubliez pas de changer votre variable d'environnement JAVA_HOME pour la nouvelle version du JDK !

1 votes

Lien connexe pour changer de version de java stackoverflow.com/questions/21964709/

15voto

bobu Points 343

Assurez-vous que vous avez JDK8 installé et ensuite réglé JAVA_HOME en JDK8

par exemple :

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

ou utiliser .bash_* pour définir cette variable

1 votes

J'avais ça dans mon .zshrc sur Mac : export JAVA_HOME=$(/usr/libexec/java_home) En le changeant en export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) choisit la dernière version installée de Java v8, et corrige ce même problème.

8voto

sotheng ski Points 71
vi ~/.bash_profile

Ajoutez ensuite les lignes suivantes :

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)

Maintenant, créez le fichier source pour que les changements ci-dessus soient effectifs dans le shell actuel :

source ~/.bash_profile

1 votes

Cette dernière ligne export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) résol résol résol résol résol résol résol résol résol résol résol résol résol résol résol pour moi - Merci !

7voto

Andres Felipe Points 2440

Sur MacOS, j'ai exécuté les commandes suivantes :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X