React Native hatası: "'9.0.1'den java sürümü belirlenemedi."


109

MacOS üzerinde çalışıyorum ve yeni başlıyorum react-native.

Başlamak için ilk adımlardan biri şunu çalıştırmaktır: react-native run-androidveya react-native run-ios. Ama şu hatayı alıyorum:

react-native run-android

Sonuç:

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

Koştuğumda elde ettiğim şey bu java --version:

java --version

Sonuç:

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)

Düzenle

Javac sürümüm:

javac --version

Sonuç:

javac 9.0.1

Bunu nasıl düzelteceğine dair bir fikrin var mı?


2
sen javac -versionde terminalde koşabilir misin lütfen
bennygenel

1
Bu sorunu biraz eski buldum ama java sürümü veya gradle ile ilgili olabilir.
bennygenel

Yanıtlar:


206

Senin içinde PROJECT_PATH/android/gradle/wrapper/gradle-wrapper.propertiesdosyanın, GüncelleştirmedistributionUrl aşağıdakilere:

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

İlgili kademeli dağıtım belgelerine bakın


4
olmalıdır app-klasör / android / gradle / kaplama / gradle-wrapper.properties
Muhammed Adeel

6
Gradle sürümünü sizin önerinizle değiştirdikten sonra bana başka bir hata veriyor: class com.android.sdklib.repository.AndroidSdkHandler
leMale

7
Bu neden yardımcı oluyor? React-Native, yeni bir uygulama başlattığınızda varsayılan olarak gradle-2.14.1 kullanır, öyleyse neden farklı bir uygulamaya ihtiyacımız var?
Waltari

11
bunu ekledikten sonra bu hatayı alıyorum> javax / xml / bind / annotation / XmlSchema
Milon

15
Gradle'ın son sürümünü kullanmanız gerekiyor. Örneğin, Java 11'i desteklemek için şunları kullanabilirsiniz:gradle-4.10-all.zip
Andrey Kolpakov


15

Eğer emin olun JDK8yüklü ve daha sonra set JAVA_HOMEhalineJDK8

Örneğin:

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

veya .bash_*bu değişkeni ayarlamak için dosyaları kullanın


1
Mac'teki .zshrc'imde export JAVA_HOME=$(/usr/libexec/java_home) bunu yaptım : export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)Java v8'in en son yüklü sürümünü seçecek şekilde değiştirmek ve aynı sorunu düzelttim.
Greg Haygood

8
vi ~/.bash_profile

Ardından aşağıdaki satırları ekleyin:

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)

Şimdi, yukarıdaki değişiklikleri geçerli kabukta etkili hale getirmek için dosyayı kaynak yapın:

source ~/.bash_profile 

1
Bu son satır export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)benim için sorunları çözdü - Teşekkürler!
JohnSalzarulo

7

MacOS'ta aşağıdaki komutları çalıştırdım:

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

3

Bu hatayı alıyordum, ancak daha yeni bir Java sürümü için - 10.0.2.

Hatamı düzeltmek için @Blacktovichebu Github sorununda belirtilen adımları takip ettim : https://github.com/facebook/react-native/issues/17688

Projemdeki androidklasörü Android Studio üzerinden açtığımda, sorusu geldi Android Gradle plugin update recommended. O zamanlar, bana tıklamamı söyleyen biraz modası geçmiş bir öğreticiyi takip ediyordum Don't remind me again for this project.

Bununla birlikte, @Blacktovicheyukarıda bağlantısı verilen github konusunda önerildiği gibi, bazen Gradle eklentisini güncellemek gerekir. Güncellemeden sonra, ayrıca tıklamam gerekiyordu Install Build Tools 27... and sync project(tam sürümü hatırlamıyorum).

Bu adımları izledikten sonra, react native uygulamamı Android Studio emülatöründe başarıyla çalıştırmayı başardım.

Umarım bu birine yardımcı olur!


1

---- Aralık 2018 --- dikkat edin --- React Native 8'den yüksek Java sürümleriyle çalışmaz, bu nedenle 9.0.1sürümünüzü kaldırmanız gerekir . Bunu yapmak için aşağıdaki komutları uygulayın:

cd /Library/Java/JavaVirtualMachines/
ls -l

Java Sürümünüzü içeren klasörü belirleyin, ardından kaldırın

sudo rm -rf jdk.x.x_xxx.jdk

Bundan sonra java 8'i oracle'dan tekrar indirip yükleyebilirsiniz. Jdk8 indirme sayfasına bakın


"React Native, 8'den yüksek Java sürümleriyle çalışmıyor" kesinlikle yanlış. Şu anda JDK 13 ile çalışan bir yapım var.
Ian Kemp

Cevabım Aralık 2018'den. 2018'den React Native'i alın ve ardından bir JDK 13 üzerinde çalıştırın ve sonra çalışırsa buraya gelin ve cevabınızı güncelleyin.
Guilherme Ferreira

0

Windows kullanıyorsanız; Jdk yolunuzu Ortam yol değişkenine eklediğinizden emin olun. Ardından android klasörünüzü react native projenizden android stüdyosuna açın. Sizin için gerekli şeyleri otomatik olarak güncelleyecektir.


0

Projeyi Android Studio kullanarak oluşturmayı unuttuğumda genellikle bu hatayı alıyorum. Basit bir senkronizasyon ve Gradle'ı yükseltme işi halledecektir.



0

Ubuntu'da, terminalde şu komut satırlarını çalıştırmalısınız:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt install oracle-java8-installer
sudo apt install oracle-java8-set-default
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.