Saya menjalankan komentar berikut:
./gradlew app:installDebug
hanya untuk bertemu dengan log:
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
Versi gradle saya adalah 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
Saya tidak yakin bagaimana melanjutkan (Saya mencoba meningkatkan / menurunkan, tetapi sejauh ini tidak ada yang berhasil).
PEMBARUAN: Saat saya berlari ./gradlew --version
, saya mendapatkan yang berikut:
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
Saya gradle-wrapper.properties
berisi:
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
gradle --version
atau./gradlew --version
? Proyek berbasis Gradle sering kali menggunakan pembungkus untuk memudahkan pengembang yang berbeda menggunakan versi Gradle yang sama untuk membangun proyek; ini juga membuat build lebih stabil.gradle --version
Jawaban:
Ada dua aplikasi Gradle berbeda di sistem Anda.
yang seluruh sistem Gradle
Aplikasi ini dipanggil oleh
gradle (arguments)
.the gradle-wrapper
Gradle-wrapper khusus untuk setiap proyek dan hanya dapat dipanggil di dalam direktori proyek, menggunakan perintah
./gradlew (arguments)
.Versi gradle seluruh sistem Anda adalah 5.1.1 (seperti yang dijelaskan OP di komentar, menjalankan perintah
gradle --version
mengembalikan versi 5.1.1).Namun, kegagalan tersebut adalah hasil dari panggilan ke gradle-wrapper (
./gradlew
). Bisakah Anda memeriksa versi pembungkus gradle proyek Anda? Untuk melakukan itu, jalankan./gradlew --version
di dalam folder proyek Anda, di direktori tempat file gradlew dan gradlew.bat berada.Pembaruan 1:
Karena
./gradlew --version
gagal dijalankan , Anda dapat memeriksa versi pembungkus Anda secara manual dengan membuka file:dengan editor teks sederhana. "DistributionUrl" di dalamnya harus memberi tahu kita apa versi pembungkusnya.
Pembaruan 2: Sesuai pertanyaan OP yang diperbarui, versi gradle-wrapper adalah 4.1RC1.
Gradle menambahkan dukungan untuk JDK 11 di Gradle 5.0 . Karenanya, karena 4.1RC tidak mendukung JDK 11, ini pasti menjadi masalah.
Cara yang jelas, adalah memperbarui gradle-wrapper proyek Anda ke versi 5.0. Namun, sebelum memperbarui, coba jalankan
gradle app:installDebug
. Ini akan menggunakan Gradle terinstal di seluruh sistem yang versinya 5.1.1 dan mendukung Java 11. Lihat apakah ini berfungsi. Jika ya, maka buildscript Anda (file build.gradle) tidak terpengaruh oleh perubahan apa pun yang mengganggu antara v.4.1RC1 dan v.5.1.1 dan Anda kemudian dapat memperbarui pembungkus Anda dengan mengeksekusi dari baris perintah di dalam folder proyek Anda:gradle wrapper --gradle-version=5.1.1
[ *].Jika
gradle app:installDebug
gagal dijalankan dengan benar, mungkin Anda perlu mengupgrade buildscript Gradle Anda. Untuk mengupdate dari v.4.1RC1 ke 5.1.1, proyek Gradle menyediakan panduan ( 1 , 2 ) dengan perubahan dan fitur yang tidak digunakan lagi di antara rilis minor, sehingga Anda bisa mengupdate secara bertahap ke versi terbaru.Atau, jika karena alasan tertentu Anda tidak dapat atau tidak ingin mengupgrade buildscript Gradle, Anda selalu dapat memilih untuk mendowngrade versi Java Anda ke versi yang didukung Gradle 4.1RC1.
[*] Seperti yang ditunjukkan dengan benar dalam jawaban lain oleh @lupchiazoem, gunakan
gradle wrapper --gradle-version=5.1.1
(dan bukan./gradlew
seperti yang saya posting di sana karena kesalahan). Alasannya adalah Gradle berjalan di Java. Anda dapat memperbarui gradle-wrapper menggunakan distribusi Gradle yang berfungsi, baik Gradle yang diinstal di seluruh sistem atau gradle-wrapper itu sendiri. Namun, dalam hal ini pembungkus Anda tidak kompatibel dengan versi Java yang Anda instal, jadi Anda harus menggunakan Gradle di seluruh sistem (aliasgradle
dan tidak./gradlew
).sumber
gradle wrapper --gradle-version=5.0
? Ganti 5.0 dengan versi yang Anda inginkan, saya rasa sekarang yang terbaru adalah 5.4Karena
distributionUrl
masih mengarah ke versi yang lebih lama, perbarui pembungkus menggunakan:gradle wrapper --gradle-version 5.1.1
Catatan: Gunakan
gradle
dan tidakgradlew
sumber
gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
Versi 6 dengan JDK12 sepertinya tidak berfungsi. 5.1.1 berfungsi dengan baik, terima kasih.Dalam kasus saya,
JAVA_HOME
variabelnya disetel ke/usr/lib/jvm/jdk-11.0.2/
. Itu sudah cukup untuk menghapus variabel seperti ini:$ export JAVA_HOME=
sumber
GRADLE_HOME
telah diperbarui (ke 5.4.1 '') tetapi bukan versi gradle (masih menunjuk ke versi yang lebih lama4.3
) yang aneh tetapi terminal restart berfungsi dengan baik. sesuatu yang aneh dengansource ~/.bash_profile
Memperbarui
gradle/wrapper/gradle-wrapper.properties
dengan versi berikut memperbaikinya untuk saya:sumber
tl; dr : downgrade java dengan menjalankan
update-alternatives
Versi gradle sistem saya adalah 4.4.1, dan versi pembungkus gradle adalah 4.0. Setelah menjalankan perintah yang diberikan oleh beberapa jawaban lain:
Saya masih mengalami kesalahan yang sama:
Ternyata java 11 tidak didukung hingga gradle 4.8, dan repositori perangkat lunak saya hanya memiliki 4.4.1. (Juga, meningkatkan ke versi gradle yang lebih baru mungkin tidak kompatibel dengan paket yang saya coba kompilasi.)
Jawabannya adalah downgrade java. Sistem saya sebenarnya sudah menginstal java8, dan mudah untuk beralih di antara versi java dengan menjalankan perintah ini dan mengikuti petunjuknya:
sumber
Karena versi pembungkus tidak mendukung 11+, Anda dapat membuat trik sederhana untuk menipu versi InteliJ yang lebih baru selamanya.
https://blog.jetbrains.com/idea/2015/05/intellij-idea-14-1-4-eap-141-1192-is-available/
Atau Jika Anda ingin bekerja dengan java 11+, Anda hanya perlu memperbarui versi pembungkus ke 4.8+
sumber
Singkatnya, tingkatkan versi Anda
gradlew
menggunakangradle
alat sistem . Perhatikan bahwa peningkatan di bawah ini berfungsi meskipungradle
versi sistem Anda adalah< 5
.sumber
Saya memiliki masalah yang sama di sini. Dalam kasus saya, saya perlu menggunakan versi lama JDK dan saya menggunakan sdkmanager untuk mengelola versi JDK, jadi, saya mengubah versi mesin virtual menjadi 1.8.
Setelah itu, aplikasi berjalan seperti yang diharapkan di sini.
sumber
Saya pernah mengalami masalah yang sama. Mengupgrade ke gradle 5.0 berhasil bagi saya.
Tautan ini memberikan langkah-langkah terperinci tentang cara menginstal gradle 5.0: https://linuxize.com/post/how-to-install-gradle-on-ubuntu-18-04/
sumber
Saya mengalami masalah serupa: default saya
gradle wrapper
adalah versi 4.x, sedangkan dukungan untuk versi Java yang lebih tinggi telah ditambahkan di Gradle 5.Saya telah memperbarui saya
gradlew
seperti yang dijelaskan di sini: https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:upgrading_wrapperTLTD:
sumber
Saya menyelesaikan ini dengan mengklik File -> Struktur Proyek kemudian mengubah Lokasi JDK menjadi Menggunakan JDK Tertanam (Disarankan)
sumber
Saya mengalami masalah serupa. Saya menghapus ini:
isi dari folder build.
lalu bangun kembali.
* JANGAN LUPA MEMBACKUP PROYEK ANDA DULU *
sumber
Saya mengalami masalah yang sama di Ubuntu 18.04.3 LTS. Dalam kasus saya, apt menginstal gradle versi 4.4.1. Versi java yang sudah diinstal adalah 11.0.4
Pesan build yang saya dapatkan adalah
Pada saat itu, sebagian besar dokumen online mereferensikan gradle versi 5.6, jadi saya melakukan yang berikut:
Kemudian saya mengulangi inisialisasi proyek (menggunakan "gradle init" dengan default). Setelah itu, "./gradlew build" berfungsi dengan benar.
Saya kemudian membaca komentar mengenai perubahan format keluaran dari "java --version" yang menyebabkan kerusakan gradle, yang diperbaiki dalam versi gradle yang lebih baru.
sumber
Dalam kasus saya, saya mencoba membuat dan mendapatkan APK untuk proyek Unity 3D lama (sehingga saya dapat memainkan game tersebut di ponsel Android saya). Saya menggunakan versi Android Studio terbaru, dan semua paket SDK yang dapat saya unduh melalui SDK Manager di Android Studio. Paket SDK berada di
Dan pesan error yang saya dapatkan sama kecuali versi JDK (Java Development Kit) "jdk-12.0.2". JDK terletak di
Dan Variabel Lingkungan di Windows adalah JAVA_HOME: C: \ Program Files \ Java \ jdk-12.0.2
Setelah 3 jam penelitian, saya menemukan bahwa Unity tidak mendukung JDK 10. Seperti yang diceritakan di
https://forum.unity.com/threads/gradle-build-failed-error-could-not-determine-java-version-from-10-0-1.532169/
. Saran saya adalah:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
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"]
Edit > Preferences > External Tools and fill in the JDK path (Mine was "C:\Program Files\Java\jdk1.8.0_221")
.Android Studio > SDK Manager > Android SDK > Android SDK Location
.)sumber
mendapatkan file proyek .. gradle / wrapper / gradlewrapper.properties
di sana Anda dapat mengubah nilainya
distributionurl
menjadi versi terbaru. (Ditemukan di docs.gradle.org)sumber
Saya menghadapi masalah yang sama dalam pengaturan Docker, ketika saya mencoba menginstal
Gradle-2.4
denganJDL 11.0.7
. Saya harus menginstal versi yang lebih baru untuk memperbaiki masalah ini.Berikut adalah Dockerfile Bekerja
sumber