Je travaille sur MacOS et je commence juste avec react-native
.
Une des premières étapes à suivre consiste à exécuter: react-native run-Android
ou react-native run-ios
. Mais je reçois cette erreur:
$ react-native run-Android
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 je reçois quand je lance Java --version
:
$ 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)
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)
ÉDITÉ: C'est ce que je reçois quand je lance javac --version
:
$ javac --version
javac 9.0.1
Une idée pour réparer ceci?
Dans le fichier,
PROJECT_PATH/Android/gradle/wrapper/gradle-wrapper.properties
Mettez à jour votre distributionUrl comme suit
distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-all.Zip
Le moyen le plus rapide de contourner cette erreur est d'utiliser JDK 8. Sauf lorsque vous devez utiliser JDK9.
http://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html
N'oubliez pas de changer votre variable d'environnement Java_HOME à la nouvelle version de JDK!
assurez-vous que JDK8 est installé, puis définissez Java_HOME dans JDK8.
par exemple:
export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
ou utilisez les fichiers .bash_ * pour définir cette variable
==================== => Source ~./Bash_profile
Sur Mac j'ai couru
brew cask uninstall Java
brew tap caskroom/versions
brew cask install Java8
Je recevais cette erreur, mais pour une version plus récente de Java - 10.0.2.
Pour corriger mon erreur, j'ai suivi les étapes mentionnées par @Blacktoviche
dans ce numéro de Github: https://github.com/facebook/react-native/issues/17688
Lorsque j'ai ouvert le dossier Android
dans mon projet via Android Studio, j'ai été invité à indiquer Android Gradle plugin update recommended
. À l'époque, je suivais un didacticiel légèrement obsolète qui me disait de cliquer sur Don't remind me again for this project
.
Cependant, comme @Blacktoviche
est recommandé dans le problème github lié ci-dessus, il est parfois nécessaire de mettre à jour le plug-in Gradle. Après la mise à jour, j'ai également dû cliquer sur Install Build Tools 27... and sync project
(je ne me souviens pas de la version exacte).
Après avoir suivi ces étapes, j'ai pu exécuter avec succès mon application native Rea sur l’émulateur Android Studio.
J'espère que cela aide quelqu'un!
React Native ne fonctionne pas avec les versions de Java supérieures à 8
Donc, vous devez désinstaller votre version 9.0.1
Pour ce faire
cd /Library/Java/JavaVirtualMachines/
ls
Identifiez le dossier contenant votre version Java .__, puis supprimez-le
Sudo rm -rf jdk.x.x_xxx.jdk
Après cela, vous pouvez télécharger et installer à nouveau Java 8 à partir d’Oracle.
http://www.Oracle.com/technetwork/pt/Java/javase/downloads/jdk8-downloads-2133151.html
Je résous cela en rétrogradant mon JDK à 8.
Vous devriez exécuter ces lignes de commande dans le 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
Si vous utilisez Windows Assurez-vous d’ajouter votre chemin jdk à la variable de chemin d’environnement. Ensuite, ouvrez votre dossier Android à partir de votre projet natif de réaction dans Android Studio. Il mettra à jour les choses nécessaires pour vous automatiquement.
Je reçois généralement cette erreur lorsque j'oublie de construire le projet avec Android Studio. Une simple synchronisation et une mise à niveau de Gradle feront le travail.