React Native error: "Nie można określić wersji Javy od wersji '9.0.1'."

Pracuję na MacOS i dopiero zaczynam od react-native.

Jednym z pierwszych kroków, aby rozpocząć, jest uruchomienie: react-native run-android lub react-native run-ios. Ale dostaję ten błąd:

react-native run-android

Wynik:

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

To dostaję, gdy biegnę java --version:

java --version

Wynik:

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)

Edytuj

Moja wersja javaca:

javac --version

Wynik:

javac 9.0.1

Jakiś pomysł, jak to naprawić?

Author: GabLeRoux, 2017-10-21

11 answers

W Twoim PROJECT_PATH/android/gradle/wrapper/gradle-wrapper.properties file, update your distributionUrl do:

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

Zobacz related gradle distributions documentation

 206
Author: Muhammad Adeel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-11 18:54:38

Naprawdę najszybszym sposobem obejścia tego błędu jest użycie JDK 8. Z wyjątkiem sytuacji, gdy naprawdę trzeba użyć JDK9.

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

Nie zapomnij zmienić zmiennej środowiska JAVA_HOME na nową wersję JDK!

 24
Author: Xen_mar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-24 07:56:57

Upewnij się, że masz zainstalowane JDK8, a następnie Ustaw JAVA_HOME na JDK8

Na przykład:

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

Lub użyj plików .bash_*, Aby ustawić tę zmienną

 15
Author: bobu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-11 18:46:03
vi ~/.bash_profile

Następnie dodaj następujące wiersze:

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)

Teraz źródło pliku, aby powyższe zmiany były skuteczne w bieżącej powłoce:

source ~/.bash_profile 
 8
Author: sotheng ski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-11 19:11:16

Na MacOS uruchomiłem następujące polecenia:

brew cask uninstall java
brew tap caskroom/versions
brew cask install java8 "or just brew cask install java to install latest version"
 7
Author: Andres Felipe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-05 14:14:19

Otrzymywałem ten błąd, ale dla nowszej wersji Javy - 10.0.2.

Aby naprawić mój błąd, wykonałem kroki wymienione przez @Blacktoviche w tym wydaniu Github: https://github.com/facebook/react-native/issues/17688

Kiedy otworzyłem folder android wewnątrz mojego projektu za pośrednictwem Android Studio, zostałem poproszony o Android Gradle plugin update recommended. W tym czasie śledziłem nieco przestarzały samouczek, który kazał mi kliknąć Don't remind me again for this project.

Jednak, jak @Blacktoviche zalecane w wydaniu github linked powyżej czasami konieczna jest aktualizacja wtyczki Gradle. Po aktualizacji musiałem też kliknąć Install Build Tools 27... and sync project (nie pamiętam dokładnej wersji).

Po wykonaniu tych czynności, udało mi się pomyślnie uruchomić moją natywną aplikację react na emulatorze Android Studio.

Mam nadzieję, że to komuś pomoże!

 3
Author: Blundering Philosopher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-23 22:44:30

- - - - Grudzień 2018 - - - zachowaj uwagę --- React Native nie działa z wersją Javy wyższą niż 8, więc musisz odinstalować swoją wersję 9.0.1. W tym celu wykonaj następujące polecenia:

cd /Library/Java/JavaVirtualMachines/
ls -l

Zidentyfikuj folder zawierający twoją wersję Javy, a następnie usuń ją

sudo rm -rf jdk.x.x_xxx.jdk

Następnie możesz ponownie pobrać i zainstalować Javę 8 z oracle. Zobacz jdk8 download page

 1
Author: Guilherme Ferreira,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-07 13:12:24

Jeśli używasz systemu windows; upewnij się, że dodałeś ścieżkę jdk do zmiennej środowiskowej path. Następnie otwórz folder android z projektu React native w android studio. Automatycznie zaktualizuje niezbędne rzeczy.

 0
Author: Shaon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-01 01:41:42

Zwykle dostaję ten błąd, gdy zapominam zbudować projekt za pomocą Android Studio. Prosta synchronizacja i aktualizacja Gradle wykona pracę.

 0
Author: Nick Rameau,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-27 14:36:31

Rozwiązuję to obniżając mój JDK do 8.

 0
Author: Gurzoni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-29 10:45:44

Na Ubuntu, powinieneś uruchomić te linie poleceń w Terminalu:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt install oracle-java8-installer
sudo apt install oracle-java8-set-default
 0
Author: Thien Nhan Nguyen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-11 18:51:58