Gradle: '11 .0.2'den java sürümü belirlenemedi


134

Şu yorumu yaptım:

./gradlew app:installDebug

yalnızca günlükle karşılanacak:

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '11.0.2'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

Gradle sürümüm 5.1.1:

------------------------------------------------------------
Gradle 5.1.1
------------------------------------------------------------

Build time:   2019-01-10 23:05:02 UTC
Revision:     3c9abb645fb83932c44e8610642393ad62116807

Kotlin DSL:   1.1.1
Kotlin:       1.3.11
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM:          11.0.2 (Oracle Corporation 11.0.2+9-LTS)
OS:           Mac OS X 10.13.6 x86_64

Nasıl devam edeceğimi bilmiyorum (Yükseltmeyi / düşürmeyi denedim, ancak şu ana kadar hiçbir şey işe yaramadı).

GÜNCELLEME: Koştuğumda ./gradlew --versionaşağıdakileri aldım:

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '11.0.2'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

Benim gradle-wrapper.propertiesiçerir:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip

5
göre bu hata raporu , bu gradle sarıcı eskidir mümkün mü?
Roddy of the Frozen Peas

gradle sürümüm 5.1.1, iyi olması gerektiğini düşünüyorum.
lesley2958

2
Bu özel projeyle ilişkili gradle sürümünü başlatan ./gradlew komutunu çalıştırırsınız. Proje sürümünün yüklediğiniz sürümle aynı olacağına dair bir garanti yoktur (5.1.1)
tryman

1
Bu sürüm bilgisi gradle --versionveya sonucu ./gradlew --versionmu? Gradle tabanlı projeler , farklı geliştiricilerin projeyi oluşturmak için aynı Gradle sürümünü kullanmasını kolaylaştırmak için genellikle bir sarmalayıcı kullanır; bu aynı zamanda yapıları daha kararlı hale getirir.
Salata

bu versiyonugradle --version
lesley2958

Yanıtlar:


125

Sisteminizde iki farklı Gradle uygulaması vardır.

  1. sistem genelinde Gradle
    Bu uygulama tarafından çağrılır gradle (arguments).

  2. the gradle-wrapper
    Gradle-wrapper her projeye özeldir ve sadece proje dizini içinde komut kullanılarak çalıştırılabilir ./gradlew (arguments).

Sistem genelinde kademeli sürümünüz 5.1.1'dir (OP'nin açıklamalarda açıkladığı gibi, komutun çalıştırılması gradle --versionsürüm 5.1.1'i döndürdü).

Ancak, başarısızlık gradle-wrapper ( ./gradlew) ' e yapılan bir çağrının sonucudur . Projenizin gradle wrapper versiyonunu kontrol edebilir misiniz? Bunu yapmak için, ./gradlew --versionprojenizin klasörünün içinde gradlew ve gradlew.bat dosyalarının bulunduğu dizini çalıştırın .

1 güncelle:
koşma gibi ./gradlew --versionbaşarısız, dosyayı el açarak sarmalayıcı sürümünü kontrol edebilirsiniz:

(projenin kök klasörü) /gradle/wrapper/gradle-wrapper.properties

basit bir metin editörü ile. İçindeki "dağıtımUrl", sarmalayıcının sürümünün ne olduğunu bize söylemelidir.

Güncelleme 2: OP'nin güncellenmiş sorusuna göre, kademeli sarmalayıcının sürümü 4.1RC1'dir.
Gradle , Gradle 5.0'da JDK 11 için destek ekledi . Dolayısıyla, 4.1RC, JDK 11'i desteklemediğinden, bu kesinlikle bir sorundur.

Açık olan yol, projenizin aşamalı paketleyicisini sürüm 5.0'a güncellemektir. Ancak güncellemeden önce çalıştırmayı deneyin gradle app:installDebug. Bu, 5.1.1 sürümü olan ve Java 11'i destekleyen sistem genelinde kurulu Gradle'ı kullanacaktır. Bunun çalışıp çalışmadığını görün. Varsa, buildscript'iniz (dosya build.gradle) v.4.1RC1 ve v.5.1.1 arasındaki herhangi bir kırılma değişikliğinden etkilenmez ve ardından projenizin klasöründeki komut satırından yürütülerek sarmalayıcınızı güncelleyebilirsiniz: gradle wrapper --gradle-version=5.1.1[ *].

Eğer gradle app:installDebugdoğru şekilde çalıştırmak başarısız, belki de sizin Gradle buildscript yükseltmeniz gerekir. V.4.1RC1'den 5.1.1'e güncelleme için Gradle projesi, en son sürüme kademeli olarak güncelleme yapabilmeniz için küçük sürümler arasındaki değişiklikleri ve kullanımdan kaldırılan özellikleri içeren bir kılavuz ( 1 , 2 ) sağlar.

Alternatif olarak, herhangi bir nedenle Gradle derlemenizi yükseltemiyorsanız veya yükseltmek istemiyorsanız, Java sürümünüzü Gradle 4.1RC1'in desteklediği bir sürüme düşürmeyi her zaman seçebilirsiniz.

[*] @Lupchiazoem tarafından başka bir yanıtta doğru bir şekilde belirtildiği gibi, kullanın gradle wrapper --gradle-version=5.1.1(ve ./gradleworaya yanlışlıkla göndermiş olduğum gibi değil ). Nedeni Gradle'ın Java'da çalışmasıdır. Gradle paketleyicinizi, sistem genelinde kurulu Gradle veya gradle wrapper'ın kendisi gibi çalışan herhangi bir Gradle dağıtımını kullanarak güncelleyebilirsiniz. Ancak, bu durumda paketleyiciniz yüklü Java sürümünüzle uyumlu değildir, bu nedenle sistem genelinde Gradle (aka gradleve değil ./gradlew) kullanmanız gerekir.


1
@tryman teşekkürler! benim için bana yardımcı olan güncelleme 2 oldu. Genel bir kural olarak, ilerleyen gradle versiyonunu kontrol edeceğimi düşünüyorum.
Avid Programmer

hatanın nedenini tam olarak belirtmezsiniz. Farklı versiyonlar mı?
João Pimentel Ferreira

Ne? 2. Güncellemenin oldukça net olduğunu düşündüm. 4.1RC1 sürümünün Gradle paketleyicisini JDK11 ile çalıştırmaya çalışıyordu. Gradle, sürüm 5.0'da JDK11 için destek ekledi. Öyleyse, JoãoPimentelFerreira'da kafan ne karışık? Nedeni buydu, gerisi projenin sarmalayıcısının JDK11'i destekleyen daha sonraki bir sürüme nasıl güncelleneceğine dair çözüm.
tryman

1
Şimdi kafam karıştı. Proje klasörünüzde hem gradle sarmalayıcınız hem de sistem genelinde bir Gradle kurulumunuz varsa, yukarıdaki adım adım çözüm sizin için çalışmalıdır. Proje klasörünüzün içinde güncelleme komutunu çalıştırarak sarmalayıcınızı yükseltmeyi denediniz gradle wrapper --gradle-version=5.0mi?
5.0'ı

1
Ancak bir uyarı: Sarıcınızın 3.3 sürümü ile herhangi bir 5.x sürümü arasında karşılaşabileceğiniz veya karşılaşmayabileceğiniz bazı önemli değişiklikler olabilir. Bu yüzden cevabımda, projenizin sarmalayıcısını güncellemeden önce yükseltmek istediğiniz 5.x sürümüyle her şeyin sorunsuz çalıştığını doğrulamak için önce projenizi sistem çapında Gradle ile oluşturmanızı öneriyorum. Aceleniz varsa (tonunuzda aciliyet seziyorum), sistemi her zaman doğrudan kullanabilir veya daha eski bir JDK'ya düşürebilir ve daha sonra paketleyicinizi yükseltmeyi yakalayabilirsiniz.
tryman

34

distributionUrlHala eski sürüme işaret ettiği gibi , aşağıdakileri kullanarak sarmalayıcıyı yükseltin:

gradle wrapper --gradle-version 5.1.1

Not: Kullanın gradleve kullanmayıngradlew


Bu işe yarıyor. Komut, gradle sarmalayıcı sürümümü günceller. Teşekkürler.
Daniel

Veya gradle/wrapper/gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip Versiyon 6'daki sürümü JDK12 ile değiştirin, çalışmıyor gibi görünüyor. 5.1.1 iyi çalışıyor, teşekkürler.
Liam Kernighan

11

Benim durumumda JAVA_HOMEdeğişken olarak ayarlandı /usr/lib/jvm/jdk-11.0.2/. Değişkeni şu şekilde ayarlamak yeterliydi:

$ export JAVA_HOME=


1
Bu benim de sorunumu çözdü. jenv sorunlarımı başlangıçta başlatmış olabilir.
jokarl

benim GRADLE_HOMEiçin güncellendi (5.4.1 '' e), ancak 4.3tuhaf olan gradle sürümü değil (hala eski sürüme işaret ediyor ) ancak terminali yeniden başlatmak iyi çalıştı. garip bir şeysource ~/.bash_profile
duaagupd

7

gradle/wrapper/gradle-wrapper.propertiesAşağıdaki sürümle güncelleme benim için sorunu çözdü:

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

6

tl; dr : çalıştırarak java'yı düşürupdate-alternatives


Sistem derecelendirme sürümüm 4.4.1 ve derecelendirme sarmalayıcı sürümü 4.0 idi. Diğer birkaç cevapla verilen komutu çalıştırdıktan sonra:

gradle wrapper --gradle-version 4.4.1

Hala aynı hatayı yaşadım:

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '11.0.4'.

Görünüşe göre java 11 4.8'e kadar desteklenmiyordu ve yazılım depolarımda sadece 4.4.1 vardı. (Ayrıca, daha yeni gradle sürümüne yükseltme, derlemeye çalıştığım paketle uyumsuz olabilirdi.)

Cevap, java'yı düşürmekti. Sistemimde java8 zaten kurulmuştu ve bu komutu çalıştırıp talimatları izleyerek java sürümleri arasında geçiş yapmak kolaydı:

sudo update-alternatives --config java

5

Sarmalayıcı sürümü 11+ 'yi desteklemediğinden, InteliJ'in yeni sürümünü sonsuza kadar hile yapmak için basit bir numara yapabilirsiniz.

  press3x Shift -> type "Switch Boot JDK" -> and change for java 8. 

https://blog.jetbrains.com/idea/2015/05/intellij-idea-14-1-4-eap-141-1192-is-available/

Veya java 11+ ile çalışmak istiyorsanız, sarmalayıcı sürümünü 4.8+ sürümüne güncellemeniz yeterlidir.


1
Sadece bir uyarı Bu çözümü Android Studio'da DENEMEYİN. Ben kıracağım.
Mauricio Sartori

3

Uzun cevabı kısaltmak için gradlew, sistem gradlearacınızı kullanarak sisteminizi yükseltin . Sistem gradlesürümünüz olsa bile aşağıdaki yükseltmenin çalıştığını unutmayın < 5.

gradle wrapper --gradle-version=5.1.1

3

Burada da aynı sorunu yaşadım. Benim durumumda JDK'nın eski bir sürümünü kullanmam gerekiyor ve JDK sürümlerini yönetmek için sdkmanager kullanıyorum , bu yüzden sanal makinenin sürümünü 1.8 olarak değiştirdim.

sdk use java 8.0.222.j9-adpt

Bundan sonra, uygulama burada beklendiği gibi çalışır.




1

Bunu Dosya -> Proje Yapısı'na tıklayarak çözdüm ve ardından JDK Konumunu Gömülü JDK Kullanacak şekilde değiştirdim (Önerilen)


0

Benzer bir sorunla karşılaştım. Bunları sildim:

  • .idea klasöründeki kitaplıklar ve önbellekler (Uygulamanız> .idea> ..) VE
  • yapı klasörünün içeriği.

    sonra yeniden inşa edin.

* ÖNCE PROJENİZİ YEDEKLEMEYİ UNUTMAYIN *


0

Ubuntu 18.04.3 LTS'de aynı sorunla karşılaştım. Benim durumumda, apt gradle sürümü 4.4.1'i kurdu. Zaten yüklenmiş olan java sürümü 11.0.4 idi

Aldığım yapı mesajı

Could not determine java version from '11.0.4'.

O zamanlar çevrimiçi dokümanların çoğu, gradle 5.6 sürümüne başvuruyordu, bu yüzden aşağıdakileri yaptım:

sudo add-apt-repository ppa:cwchien/gradle
sudo apt update
sudo apt upgrade gradle

Sonra proje başlatmayı tekrarladım (varsayılanlarla "gradle init" kullanarak). Bundan sonra, "./gradlew build" düzgün çalıştı.

Daha sonra, gradle'ın daha sonraki bir sürümünde düzeltilen "java --version" dan çıktının biçimindeki bir değişiklikle ilgili olarak gradle'ın bozulmasına neden olan bir yorum okudum.


0

Benim durumumda, eski bir Unity 3D projesi için APK oluşturmaya ve almaya çalışıyordum (böylece oyunu Android telefonumda oynayabilirim). En son Android Studio sürümünü ve Android Studio'da SDK Yöneticisi aracılığıyla indirebileceğim tüm SDK paketlerini kullanıyordum. SDK Paketleri şurada bulunuyordu:

C:/Users/Onat/AppData/Local/Android/Sdk 

Ve aldığım hata mesajı JDK (Java Geliştirme Kiti) sürümü "jdk-12.0.2" dışında aynıydı. JDK şurada bulunuyordu:

C:\Program Files\Java\jdk-12.0.2

Ve Windows'taki Ortam Değişkeni JAVA_HOME: C: \ Program Files \ Java \ jdk-12.0.2 idi.

3 saatlik bir araştırmadan sonra, Unity'nin JDK 10'u desteklemediğini öğrendim https://forum.unity.com/threads/gradle-build-failed-error-could-not-determine-java-version-from-10-0-1.532169/. Benim önerim şu:

  1. Zaten kurulu bir JDK'nız varsa, istenmeyen JDK'yı kaldırın. https://www.java.com/tr/download/help/uninstall_java.xml
  2. Git http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  3. Henüz oturum açmadıysanız bir Oracle hesabına giriş yapın / açın.
  4. Bilgisayar kurulumunuz için eski ama işlevsel JDK 8'i indirin (32 bit / 64 bit, Windows / Linux vb.)
  5. JDK'yı yükleyin. Kurulum yolunu hatırlayın. ( https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/ )
  6. Windows kullanıyorsanız, Ortam Değişkenlerini Açın ve Java Yolunu Sağ tıklayın My Computer/This PC>Properties>Advanced System Settings>Environment Variables>New>Variable Name: JAVA_HOME>Variable Value: [YOUR JDK Path, Mine was "C:\Program Files\Java\jdk1.8.0_221"]
  7. Unity 3D'de düğmesine basın Edit > Preferences > External Tools and fill in the JDK path (Mine was "C:\Program Files\Java\jdk1.8.0_221").
  8. Ayrıca, aynı açılır pencerede SDK Yolunu düzenleyin. (Şuradan alın Android Studio > SDK Manager > Android SDK > Android SDK Location.)
  9. Gerekirse, değişikliklerin etkili olması için bilgisayarınızı yeniden başlatın.

0

dosya projelendirme lazım .. gradle / wrapper / gradlewrapper.properties

orada distributionurlen son sürümün değerini değiştirebilirsiniz . (Docs.gradle.org'da bulundu)


0

Ben yüklemeye çalışırken ben, Docker kurulumunda aynı sorunu bakıyordu Gradle-2.4ile JDL 11.0.7. Daha sonraki bir sürümü yüklemem gerekiyorSorunu düzeltmek için gerekiyor.

İşte Çalışan Dockerfile

FROM openjdk:11.0.7-jdk
RUN apt-get update && apt-get install -y unzip
WORKDIR /gradle
RUN curl -L https://services.gradle.org/distributions/gradle-6.5.1-bin.zip -o gradle-6.5.1-bin.zip
RUN unzip gradle-6.5.1-bin.zip
ENV GRADLE_HOME=/gradle/gradle-6.5.1
ENV PATH=$PATH:$GRADLE_HOME/bin
RUN gradle --version
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.