Kesalahan React Native: “Tidak dapat menentukan versi java dari '9.0.1'.”

108

Saya sedang mengerjakan MacOS dan baru mulai dengan react-native .

Salah satu langkah pertama untuk memulai adalah menjalankan: react-native run-androidatau react-native run-ios. Tapi saya mendapatkan kesalahan ini:

react-native run-android

Hasil:

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

Inilah yang saya dapatkan saat berlari java --version:

java --version

Hasil:

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)

Edit

Versi javac saya:

javac --version

Hasil:

javac 9.0.1

ada ide untuk memperbaiki ini?

Xar
sumber
2
bisakah Anda menjalankan javac -versionjuga di terminal, tolong
bennygenel
1
Saya menemukan masalah ini agak lama tetapi mungkin terkait dengan versi java atau gradle.
bennygenel

Jawaban:

205

Di PROJECT_PATH/android/gradle/wrapper/gradle-wrapper.propertiesfiledistributionUrl Anda , perbarui Anda ke yang berikut:

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

Lihat dokumentasi distribusi gradle terkait

Muhammad Adeel
sumber
4
harus ada di app-folder / android / gradle / wrapper / gradle-wrapper.properties
Muhammad Adeel
6
Setelah saya mengubah versi gradle ke saran Anda, saya mendapat kesalahan lain: Tidak dapat menginisialisasi kelas com.android.sdklib.repository.AndroidSdkHandler
leMale
7
Mengapa ini membantu? React-Native menggunakan gradle-2.14.1 secara default saat Anda menjalankan aplikasi baru, jadi mengapa kita membutuhkan yang lain?
Waltari
11
mendapatkan kesalahan ini setelah menambahkan ini> javax / xml / bind / annotation / XmlSchema
Milon
15
Anda perlu menggunakan Gradle versi terbaru. Misalnya, untuk mendukung Java 11, Anda dapat menggunakangradle-4.10-all.zip
Andrey Kolpakov
15

Pastikan Anda telah JDK8menginstal dan kemudian mengatur JAVA_HOMEkeJDK8

sebagai contoh:

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

atau gunakan .bash_*file untuk menyetel variabel ini

bobu
sumber
1
Saya memiliki ini di .zshrc saya di mac: export JAVA_HOME=$(/usr/libexec/java_home) Menggantinya untuk export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)memilih versi terbaru Java v8 yang diinstal, dan memperbaiki masalah yang sama ini.
Greg Haygood
8
vi ~/.bash_profile

Kemudian tambahkan baris berikut:

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)

Sekarang sumber file untuk membuat perubahan di atas efektif di shell saat ini:

source ~/.bash_profile 
sotheng ski
sumber
1
Baris terakhir ini export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)menyelesaikan banyak hal untuk saya - Terima kasih!
JohnSalzarulo
7

Di MacOS, saya menjalankan perintah berikut:

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

Saya mendapatkan kesalahan ini, tetapi untuk versi Java yang lebih baru - 10.0.2.

Untuk memperbaiki kesalahan saya, saya mengikuti langkah-langkah yang disebutkan @Blacktovichedalam masalah Github ini: https://github.com/facebook/react-native/issues/17688

Ketika saya membuka androidfolder di dalam proyek saya melalui Android Studio, saya diminta dengan Android Gradle plugin update recommended. Pada saat itu, saya mengikuti tutorial yang agak ketinggalan jaman yang meminta saya untuk mengklikDon't remind me again for this project .

Namun, seperti yang @Blacktovichedirekomendasikan dalam masalah github yang ditautkan di atas, terkadang plugin Gradle perlu diupdate. Setelah memperbarui, saya juga harus mengklikInstall Build Tools 27... and sync project (Saya tidak ingat versi persisnya).

Setelah saya mengikuti langkah-langkah ini, saya berhasil menjalankan aplikasi react native saya di emulator Android Studio.

Semoga ini bisa membantu seseorang!

Filsuf yang salah
sumber
1

---- Desember 2018 --- perhatikan --- React Native tidak bekerja dengan versi Java yang lebih tinggi dari 8, jadi Anda perlu menghapus 9.0.1versi Anda . Untuk melakukannya, jalankan perintah berikut:

cd /Library/Java/JavaVirtualMachines/
ls -l

Identifikasi folder yang berisi Versi Java Anda, lalu hapus

sudo rm -rf jdk.x.x_xxx.jdk

Setelah itu Anda bisa mendownload dan menginstal java 8 dari oracle lagi. Lihat halaman unduhan jdk8

Guilherme Ferreira
sumber
"React Native tidak bekerja dengan versi Java yang lebih tinggi dari 8" benar-benar salah. Saya memiliki build yang menjalankan JDK 13 sekarang.
Ian Kemp
Jawaban saya dari DEC 2018. Dapatkan React Native dari 2018, dan kemudian jalankan di JDK 13 dan kemudian jika berhasil, datang ke sini dan perbarui jawaban Anda.
Guilherme Ferreira
0

Jika Anda menggunakan windows; Pastikan Anda menambahkan jalur jdk Anda ke variabel jalur Lingkungan. Kemudian buka folder android Anda dari react native project ke dalam android studio. Ini akan memperbarui hal-hal yang diperlukan untuk Anda secara otomatis.

Shaon
sumber
0

Saya biasanya mendapatkan kesalahan ini ketika saya lupa membangun proyek menggunakan Android Studio. Sinkronisasi sederhana dan peningkatan Gradle akan bekerja.

Nick Rameau
sumber
0

Saya menyelesaikan ini dengan menurunkan JDK saya ke 8.

Gurzoni
sumber
0

Di Ubuntu, Anda harus menjalankan baris perintah ini di 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
Thien Nhan Nguyen
sumber