Bagaimana cara menginstruksikan Gradle untuk menggunakan Java dari lokasi yang berbeda?


9

Saya sedang membangun aplikasi pengujian saya di Android Studio, kemudian di Event Log katanya:

Android Studio menggunakan lokasi JDK ini: C: \ Program Files \ Android \ Android Studio \ jre yang berbeda dengan apa yang digunakan Gradle secara default: C: \ Program Files (x86) \ Java \ jdk1.8.0_181 Menggunakan lokasi yang berbeda dapat memunculkan beberapa daemon Gradle jika tugas Gradle dijalankan dari baris perintah saat menggunakan Android Studio.

Kemudian berikan opsi ini:

  1. Info lebih lanjut...
  2. Atur Android Studio untuk menggunakan JDK yang sama dengan Gradle dan sinkronkan
  3. Jangan tampilkan peringatan ini lagi

Saya mengklik:

Atur Android Studio untuk menggunakan JDK yang sama dengan Gradle dan sinkronkan

maka aplikasi saya tidak ingin membangun lagi.

Ini kesalahannya:

Gagal sinkronisasi gagal: Tidak dapat memulai proses daemon.
Masalah ini mungkin disebabkan oleh konfigurasi daemon yang salah.

Misalnya, opsi jvm yang tidak dikenal digunakan.
Silakan merujuk ke bab Manual Pengguna pada daemon di https://docs.gradle.org/5.4.1/userguide/gradle_daemon.html

Baris perintah proses: C: \ Program Files (x86) \ Java \ jdk1.8.0_181 \ bin \ java.exe -Xmx1536m -Dfile.encoding = windows-1252 -Duser.country = ZA -Duser.language = en -Duser. varian -cp C: \ Users \ {MyUserName} \. gradle \ wrapper \ dists \ gradle-5.4.1-all \ 3221gyojl5jsh0helicew7rwx \ gradle-5.4.1 \ lib \ gradle-launcher-5.4.1.jar org.gradle. launcher.daemon.bootstrap.GradleDaemon 5.4.1

Silakan baca output proses berikut untuk mencari tahu lebih lanjut:

Kesalahan terjadi selama inisialisasi VM Tidak dapat memesan ruang yang cukup untuk tumpukan objek 1572864KB Konsultasikan log IDE untuk detail lebih lanjut (Help | Show Log) (16 s 166 ms)

Saya memeriksa log peristiwa:

Saya pikir sebelumnya ia melakukan ini:

Instruksikan gradle untuk menggunakan java dari C: / Program Files / Android / Android Studio / jre

Sekarang katanya:

Instruksikan gradle untuk menggunakan java dari C: / Program Files (x86) /Java/jdk1.8.0_181

Bagaimana cara mengembalikannya ke cara semula sehingga aplikasi saya dapat membangun kembali?

Bantuan / saran apa pun akan dihargai

Jawaban:


2

Buka File, Struktur Proyek, lokasi SDK dan ubah dropdown lokasi JDK ke JAVA_HOME.

Struktur proyek dalam Androdi Studio 3.6 beta


1
Mencoba itu kemudian mendapat kesalahan yang sama seperti dalam pertanyaan saya. Saya menggunakan Windows 64 bit.
Shiasu-sama

1

Anda perlu mengubah / menambahkan variabel lingkungan.

Ikuti tautan ini untuk mengetahui cara mengubah / menambah variabel lingkungan.

Sekarang tambahkan / ubah variabel 'JAVA_HOME' dan setel path ke C:\Program Files\Android\Android Studio\jre

Catatan: Ketika Anda akan bekerja pada proyek Java yang berbeda nanti di IDE yang berbeda, Anda mungkin harus mengubah variabel ini lagi ke lokasi Java default (dalam hal ini mungkin C:/Program Files (x86)/Java/jdk1.8.0_181)


0

Gradle jelas menggunakan instalasi java asli saya (dari Oracle) sedangkan Android Studio menggunakan versi sendiri.

Saya telah mengabaikan peringatan ini sejak peningkatan Android Studio ke 3.6.1. Tidak ada masalah sejauh ini. Memang, saya telah merilis versi baru aplikasi saya tanpa masalah.

Jika ini menjadi menjengkelkan, dan JIKA Anda tidak memiliki masalah lain, Anda memiliki opsi untuk mengabaikan peringatan di masa depan: Cukup tekan peringatan dan pilih opsi untuk mengabaikan pesan di masa depan terkait dengan peringatan ini.


0

Ubuntu 16.04 LTS, Android Studio 3.6

Begitulah cara saya menghilangkan peringatan:

1) cari skrip peluncur AS studio.shdi mesin Anda, milik saya ada di bawah: /opt/android-studio-3.x/bin
2) di dalam skrip, Anda akan menemukan baris berikut:

# ---------------------------------------------------------------------
# Locate a JDK installation directory which will be used to run the IDE.
# Try (in order): STUDIO_JDK, studio.jdk, ./jre64, JDK_HOME, JAVA_HOME, "java" in PATH.
# ---------------------------------------------------------------------
if [ -n "$STUDIO_JDK" -a -x "$STUDIO_JDK/bin/java" ]; then
  JDK="$STUDIO_JDK"
fi

if [ -z "$JDK" -a -s "$HOME/.AndroidStudio3.6/config/studio.jdk" ]; then
  USER_JRE=`"$CAT" $HOME/.AndroidStudio3.6/config/studio.jdk`
...

3) jika, karena alasan tertentu, Anda tidak dapat mengekspor variabel lingkungan Anda ke peluncur (seperti yang terjadi pada saya dari sesi xfce4), Anda dapat menulis nilai yang diinginkan JAVA_HOMEdi dalam studio.jdkfile yang lokasinya di sistem saya, sesuai dengan skrip, ada di $HOME/.AndroidStudio3.6/config/studio.jdk.

$ echo $JAVA_HOME > $HOME/.AndroidStudio3.6/config/studio.jdk
$ cat $HOME/.AndroidStudio3.6/config/studio.jdk
/usr/lib/jvm/java-8-oracle

4) terakhir, dengan me-restart AS dari sesi DE, Anda akan melihat di JAVA_HOMEbawah File -> Struktur Proyek -> jendela Lokasi SDK diatur ke nilai di atas dan AS dan gradle harus menggunakan JRE yang sama:

Jendela Struktur Proyek


-1

Di Android Studio saya lakukan:

File> Struktur Proyek ...> Lokasi SDK (Di panel kiri)

Kemudian di bagian bawah ada drop down di bawah ini: Lokasi JDK:

Saya kemudian memilih / melihat-lihat direktori ini:

C: \ Program Files \ Java \ jdk1.8.0_181

Gradle Sync berfungsi lagi untuk saya setelah itu tetapi saya masih mendapatkan peringatan ini:

Android Studio menggunakan lokasi JDK ini: C: \ Program Files \ Java \ jdk1.8.0_181 yang berbeda dengan apa yang digunakan Gradle secara default: C: \ Program Files (x86) \ Java \ jdk1.8.0_181 . Menggunakan lokasi yang berbeda dapat menghasilkan banyak daemon Gradle jika tugas Gradle dijalankan dari baris perintah saat menggunakan Android Studio.

  1. Info lebih lanjut...
  2. Atur Android Studio untuk menggunakan JDK yang sama dengan Gradle dan proyek sinkronisasi
  3. Jangan tampilkan peringatan ini lagi

Lalu aku mengklik yang tidak memuaskan: "Jangan tampilkan peringatan ini lagi": /
Shiasu-sama
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.