Gagal memasang android-sdk: “java.lang.NoClassDefFoundError: javax / xml / bind / annotation / XmlSchema”

166

Saat memasang alat Android SDK kesalahan berikut dipancarkan:

java.lang.NoClassDefFoundError: javax / xml / bind / annotation / XmlSchema

Mengapa ini terjadi dan bagaimana cara memperbaikinya?

Output debug:

$ java --version
java 9
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
$ brew cask install android-sdk
==> Caveats
We will install android-sdk-tools, platform-tools, and build-tools for you.
You can control android sdk packages via the sdkmanager command.
You may want to add to your profile:
  'export ANDROID_SDK_ROOT=/usr/local/share/android-sdk'

This operation may take up to 10 minutes depending on your internet connection.
Please, be patient.

==> Satisfying dependencies
==> Downloading https://dl.google.com/android/repository/sdk-tools-darwin-3859397.zip
Already downloaded: /Users/tomasnovella/Library/Caches/Homebrew/Cask/android-sdk--3859397,26.0.1.zip
==> Verifying checksum for Cask android-sdk
==> Installing Cask android-sdk
==> Exception in thread "main"
==> java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
==>     at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
==>     at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
==>     at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
==>     at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:117)
==>     at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:93)
==> Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
==>     at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
==>     at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
==>     at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
==>     ... 5 more
Error: Command failed to execute!

==> Failed command:
/usr/local/Caskroom/android-sdk/3859397,26.0.1/tools/bin/sdkmanager tools platform-tools build-tools;26.0.1

==> Standard Output of failed command:


==> Standard Error of failed command:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:117)
Novellizator
sumber
Saya menganggap pertanyaan Anda adalah "Apa yang menyebabkan kesalahan ini?" Jawabannya adalah tidak dapat menemukan kelas javax.xml.
Steve Smith
28
Sebenarnya pertanyaan ini menanyakan masalah yang sah dengan menginstal SDK Android ketika memiliki java9
jontro
17
Saya memiliki masalah ini, dan saya menyalin / menempelkan baris pertama dari pesan kesalahan saya ke google, dan pertanyaan ini adalah hit pertama yang muncul. Tidak hanya itu, salah satu jawaban di bawah ini menyelesaikannya. Ini harus benar-benar tidak ditutup: tidak peduli apa aturan pertanyaannya, pertanyaan ini terbukti memenuhi seluruh tujuan situs.
Le Mot Dijus
1
Hapus yang lebih lama dari Java 8 dari/Library/Java/JavaVirtualMachines
Dimitris
2
Masalahnya terjadi dengan Java 8 dan Java 11 pada Ubuntu 18.04 menggunakan paket openjdk-8-jdkdan openjdk-11-jdk. Adakah yang tahu untuk memasang apa javax/xml/bind/annotation/XmlSchema, atau bagaimana menghindari javax/xml/bind/annotation/XmlSchemadi NDK?
jww

Jawaban:

138

Saya memiliki masalah serupa pagi ini (mencoba membangun untuk Android menggunakan Unity3D). Saya akhirnya menghapus JDK9 dan menginstal Java SE Development Kit 8u144 . Semoga ini membantu.

  1. brew cask uninstall java # uninstall java9
  2. brew tap homebrew/cask-versions
  3. brew cask install java8 # pasang java8
  4. touch ~/.android/repositories.cfg # tanpa file ini, kesalahan akan terjadi pada langkah berikutnya
  5. brew cask install android-sdk
spassvogel
sumber
2
Mendapat kesalahan pada windows 10, mencoba ini, masih tidak berfungsi. Ada tips?
Vedvart1
3
Hebat - ini bekerja untuk saya membangun aplikasi Flutter di Android Studio. Terima kasih!
Darragh Enright
20
Ini berhenti bekerja, pembuatan tong instalasi java8 tidak berfungsi.
kdy
4
perintah yang benar tampaknya sekarangbrew cask install homebrew/cask-versions/java8
caesarsol
21
brew cask install homebrew/cask-versions/adoptopenjdk8tampaknya berhasil
guruz
81

Untuk mengatasi kesalahan ini, Anda bisa menurunkan versi Java Anda.

Atau ekspor opsi berikut di terminal Anda:

Linux / MAC:

export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

Windows :

set JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

Dan untuk menyimpannya secara permanen Anda dapat mengekspor JAVA_OPTSdalam file profil Anda di linux ( .zshrc, .bashrcdan lain-lain) atau menambahkan sebagai variabel lingkungan secara permanen di Windows.


ps. Ini tidak berfungsi untuk Java 11+, yang tidak memiliki modul Java EE. Untuk opsi ini adalah ide yang bagus, turunkan versi Java Anda atau tunggu pembaruan Flutter .

Ref: JDK 11: Ujung jalan untuk modul Java EE

Valdeci
sumber
6
Ini bekerja untuk saya di Ubuntu 18,04 w / OpenJDK 10.0.2
rastating
3
Bekerja untuk saya di macOS Mojave (10.14.2) dengan versi Java "10.0.1" 2018-04-17.
Subfuzion
4
Membuat kesalahan baru untuk saya di macOS Mojave (10.14.2): Kesalahan terjadi selama inisialisasi lapisan boot java.lang.module.FindException: Module java.se.ee tidak ditemukan
Randy
2
Saya juga mencoba 1.8.0_191, tetapi saya masih mendapatkan: Kesalahan: Tidak dapat menemukan atau memuat java.se.ee kelas utama
Randy
1
Opsi ini tidak diperlukan untuk Java 8 dan tidak berfungsi untuk Java 11, yang tidak memiliki modul Java EE.
valdeci
63
set JAVA_OPTS=-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee

Ini memperbaiki masalah pada Windows untuk saya.

Sumber 1 , sumber 2

Tim Jenßen
sumber
2
Juga menggunakan ini di ubuntu 16.04 (menggunakan exporttidak set) dan itu menyelesaikan masalah.
Benjamin Conlan
Jenius. Terima kasih banyak. Kupikir aku harus mengubah JVM-ku
serpih
1
Bekerja seperti pesona pada Windows 10 dengan Java 10
pabz
4
Sayangnya itu tampaknya telah dihapus seluruhnya di Jawa 11.
Alastair Maw
Bekerja export JAVA_OPTS = '-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'di Ubuntu 18.04
e2-e4
25

Jika Anda tidak ingin mengubah versi Java Anda (saya tidak), Anda dapat mengubah versi sementara di shell Anda:

Lari pertama

/usr/libexec/java_home -V

Kemudian pilih versi utama jika Anda menginstalnya, jika tidak instal dulu:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

Sekarang Anda dapat menjalankan sdkmanager.

Sarah A
sumber
2
$ /usr/libexec/java_home -Vmemberi bash: /usr/libexec/java_home: No such file or directory. apt-file search /usr/libexec/java_homememberi apa-apa.
Tino
Apakah Anda sudah menyetel $ JAVA_HOME dengan benar? Jalankan: echo "export JAVA_HOME=`/usr/libexec/java_home`" >> ~/.bashrc(atau profil jika Anda menggunakan profil) - muat ulang:. ~/.bashrc
Sarah A
Juga tidak ada /usr/libexec. Apakah Anda menggunakan MacOS? (Saya di Ubuntu / Linux dan Ubuntu / Windows)
Tino
Saya menggunakan mac. dimana Java_home kamu?
Sarah A
20

Di Mac / Linux gunakan perintah berikut:

export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

Bekerja untuk JDK 9 dan 10, tanpa menambal skrip apa pun (sdkmanager, avdmanager).

Untuk Java 11 lihat: https://stackoverflow.com/a/51644855/798165

Oori
sumber
1
Terima kasih! itu memecahkan masalah ketika Anda telah menginstal jdk 9
Jorge Valvert
15

Saya menemukan dua jawaban yang berfungsi untuk saya, tanpa harus menghapus JDK 10 (atau 9), yang saya perlukan create-react-app. Baik JDK 9 dan 10 tidak kompatibel dengan android-SDK!


Siu Ching Pong - Asuka Kenji- menyarankan untuk memodifikasi sdkmanagerskrip, menggantikan baris ini:

DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME"'  

dengan:

DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

Perhatikan bahwa mod ini akan ditimpa ketika memperbarui sdkmanager.
Lihat posnya, dan yang dia tautkan, untuk lebih jelasnya.
Solusi ini juga salah satu solusi yang disebutkan dalam utas masalah github ini .


Posting Jerman menunjukkan sumber konflik, dan menyajikan perbaikan yang tidak akan ditimpa oleh pembaruan.
Dia menyarankan penggantian nama /Library/Java/JavaVirtualMachines/Info.plistsebagai cara untuk mengaburkannya dari skrip yang mencari versi Java tertinggi yang ada di sistem Anda. Dengan cara ini, JDK 8 dikembalikan sebagai default.
Mengacu pada JDK 10 secara eksplisit, atau dengan mengaturnya $JAVA_HOME, Anda dapat menggunakan JDK 10, sebagai ganti dari default, kapan pun diperlukan.
Detail ada di posnya.

SherylHohman
sumber
1
Bekerja dengan sempurna, solusi terbaik IMHO karena tidak memaksa Anda untuk menurunkan versi java
tingkat
Entah bagaimana, setelah banyak bereksperimen dengan ao. Android Studio, masalah ini hilang dan kesalahan baru adalah Could not find or load main class java.se.ee- mengembalikan DEFAULT_JVM_OPTS memperbaiki ini dan masalah sebelumnya hilang ..
4levels
3
Sayangnya, ini tidak berfungsi sekarang. Hasilnya adalah: Kesalahan terjadi selama inisialisasi layer boot java.lang.module.FindException: Module java.se.ee tidak ditemukan
Oscar
1
Peningkatan stackoverflow.com/a/49630166/5411817 karena memiliki solusi yang tepat untuk menjaga agar jdk-11 dan jdk1.8 terinstal tanpa downgrade
harrisjb
15

Anda perlu menambahkan yang berikut ini ke Profil Anda (Bekerja pada MacOS):

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

Tidak perlu menambal apa pun.

Farsheed
sumber
15

Cukup instal JDK versi 8 dan pilih sebagai default menggunakan:

sudo update-alternatives --config java
Steven
sumber
10

Pembaruan 2019-10:

Seperti yang dinyatakan dalam pelacak masalah , Google telah bekerja pada rilis Alat Perintah-SDK Android Android baru yang berjalan pada JVM saat ini (9, 10, 11+) dan tidak bergantung pada modul JAXB EE yang sudah usang!

Anda dapat mengunduh dan menggunakan Alat baris perintah SDK Android baru di dalam Android Studio atau dengan mengunduhnya secara manual dari server Google:

Untuk versi terbaru periksa URL di dalam repository.xml .

Jika Anda membongkar secara manual alat-alat baris perintah, berhati-hatilah menempatkannya dalam subfolder di dalam $ANDROID_HOME(mis $ANDROID_HOME/cmdline-tools/....) Anda.

G00fY
sumber
Saat menggunakan Java 9+, ini seharusnya menjadi jawaban mulai sekarang!
Luiggi Mendoza
9

Anehnya Java9 tidak kompatibel dengan android-SDK

$ avdmanager
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.AvdManagerCli.run(AvdManagerCli.java:213)
    at com.android.sdklib.tool.AvdManagerCli.main(AvdManagerCli.java:200)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    ... 5 more

Menggabungkan semua perintah menjadi satu untuk referensi mudah:

$ sudo rm -fr /Library/Java/JavaVirtualMachines/jdk-9*.jdk/
$ sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
$ sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefPane

$ /usr/libexec/java_home -V
Unable to find any JVMs matching version "(null)".
Matching Java Virtual Machines (0):
Default Java Virtual Machines (0):
No Java runtime present, try --request to install

$ brew tap caskroom/versions
$ brew cask install java8
$ touch ~/.android/repositories.cfg
$ brew cask install android-sdk
$ echo 'export ANDROID_SDK_ROOT="/usr/local/share/android-sdk"' >> ~/.bash_profile
$ java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
$ avdmanager

Usage:
      avdmanager [global options] [action] [action options]
      Global options:
  -s --silent     : Silent mode, shows errors only.
  -v --verbose    : Verbose mode, shows errors, warnings and all messages.
     --clear-cache: Clear the SDK Manager repository manifest cache.
  -h --help       : Help on a specific command.

Valid actions are composed of a verb and an optional direct object:
-   list              : Lists existing targets or virtual devices.
-   list avd          : Lists existing Android Virtual Devices.
-   list target       : Lists existing targets.
-   list device       : Lists existing devices.
- create avd          : Creates a new Android Virtual Device.
-   move avd          : Moves or renames an Android Virtual Device.
- delete avd          : Deletes an Android Virtual Device.
Baiklah Smith
sumber
8

Karena Java 11 telah menghapus JavaEE Anda harus mengunduh beberapa toples dan menambahkan ke classpath:

JAXB: https://javaee.github.io/jaxb-v2/

JAF: https://www.oracle.com/technetwork/articles/java/index-135046.html

Kemudian edit sdkmanager.bat sehingga set CLASSPATH = ... diakhiri dengan ;% CLASSPATH%

Atur CLASSPATH untuk memasukkan JAXB dan JAF:

set CLASSPATH=jaxb-core.jar;jaxb-impl.jar;jaxb-api.jar;activation.jar

Kemudian sdkmanager.bat akan berfungsi.

Peter Quiring
sumber
Ini berfungsi, tetapi saya mendapatkan peringatan ini: PERINGATAN: Ilegal akses reflektif oleh com.sun.xml.bind.v2.runtime.reflect.opt.Injector (file: / F: / android_sdk / java / jaxb-ri / lib / jaxb -impl.jar) ke metode java.lang.ClassLoader.defineClass (java.lang.String, byte [], int, int)
AndyMc
Ya, sepertinya Java mulai memperingatkan terhadap praktik pemrograman yang buruk menggunakan refleksi untuk mem-bypass keamanan kelas, yang digunakan JAXB (Oracle melanggar aturan mereka sendiri);)
Peter Quiring
4

Saya mengalami masalah yang sama saat menjalankan:

$ /Users/<username>/Library/Android/sdk/tools/bin/sdkmanager "platforms;android-28" "build-tools;28.0.3"_

Saya memecahkannya sebagai

$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home    

$ ls /Library/Java/JavaVirtualMachines/

jdk-11.0.1.jdk      
jdk1.8.0_202.jdk

Ubah Java untuk menggunakan 1.8

$ export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home'

Kemudian perintah yang sama berjalan dengan baik

$ /Users/<username>/Library/Android/sdk/tools/bin/sdkmanager "platforms;android-28" "build-tools;28.0.3"
Sandeep
sumber
Ini adalah kasus terbaik. Jika Anda sudah mengekspor JAVA_OPTS. Harap hapus dulu sebelum Anda melakukan langkah-langkah dari jawaban ini.
Pedang Jason
4

Saya menghadapi masalah yang sama. Meskipun saya sedikit pengembang backdated (Masih menggunakan windows untuk mengembangkan: P)

Untuk mengatasi masalah ini di windows :

LANGKAH 1: Instal jdk 8 jika tidak diinstal (jdk 9 atau 11 tidak bekerja tetapi Anda mungkin menginstalnya untuk digunakan dalam penggunaan dev lainnya).

Sangat sederhana menggunakan Chocolatey:

choco instal jdk8

(Jika dipasang menggunakan Chocolatey, lewati langkah 2 dan 3)

LANGKAH 2: Buka pengaturan variabel Lingkungan dan setel direktori instalasi JAVA_HOME KE jdk 8.

JAVA_HOME

LANGKAH 3: Buka variabel path dan tambahkan direktori bin dari jdk 8 dan pindahkan ke atas.

Path_varriable

LANGKAH 4: Tutup semua sesi terminal terbuka dan mulai kembali sesi baru

LANGKAH OPSIONAL 5: Bergantung pada tujuan Anda dalam menjalankan terminal (mungkin perlu menambahkan sdkmanager ke path atau hanya menavigasi ke direktori):

sdkmanager --perbarui

Itu saja! : O Selamat terbang! : D

THE_BLESSED_MEDIUM
sumber
1
Ini bersama dengan jawaban teratas bekerja untuk saya di windows 10!
mauriii
TERIMA KASIH
Raghav Joshi
2

Untuk mesin windows copot JDK jika lebih dari 1.8.172. Instal JDK 1.8.172

Saya menghadapi masalah yang sama di windows 10 dengan java 10. Saya uninstall java 10 dan menginstal java8 berfungsi dengan baik untuk saya sekarang :)

Jagan
sumber
2

Untuk pengguna Linux (Saya menggunakan Debian Distro, Kali) Inilah cara saya menyelesaikan masalah saya.

Jika Anda belum memiliki jdk-8, Anda ingin mendapatkannya di situs oracle

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Saya mendapat jdk-8u191-linux-x64.tar.gz

Langkah 1 - Menginstal Java Move dan membongkar di lokasi yang cocok seperti itu

$ mv jdk-8u191-linux-x64.tar.gz /suitablelocation/
$ tar -xzvf /suitablelocation/jdk-8u191-linux-x64.tar.gz

Anda harus mendapatkan folder yang tidak di-zip seperti jdk1.8.0_191 Anda dapat menghapus tarball setelahnya untuk menghemat ruang

Langkah 2 - Menyiapkan alternatif ke lokasi java default

$ update-alternatives --install /usr/bin/java java /suitablelocation/jdk1.8.0_191/bin/java 1
$ update-alternatives --install /usr/bin/javac javac /suitablelocation/jdk1.8.0_191/bin/javac 1

Langkah 3 - Memilih alternatif Anda sebagai default

$ update-alternatives --set java /suitablelocation/jdk1.8.0_191/bin/java
$ update-alternatives --set javac /suitablelocation/jdk1.8.0_191/bin/javac

Langkah 4 - Mengkonfirmasi versi java default

$ java -version

Catatan

  1. Dalam artikel asli di sini: https://forums.kali.org/showthread.php?41-Instaling-Java-on-Kali-Linux , plugin default untuk mozilla juga ditetapkan. Saya berasumsi kita tidak benar-benar membutuhkan plugin karena kami hanya mencoba mengembangkan untuk android.
  2. Seperti dalam jawaban @ spassvogel, Anda juga harus meletakkan file @ repositories.cfg di direktori ~ / .android Anda karena ini diperlukan untuk memperbarui daftar alat repo alat
  3. Memindahkan beberapa hal mungkin memerlukan otoritas root. Gunakan sudo dengan bijak.
  4. Untuk penggunaan sdkmanager, lihat panduan resmi: https://developer.android.com/studio/command-line/sdkmanager
hugovicfortman
sumber
1

Jalankan java -versiondan javac -versionperintah dalam baris perintah untuk memastikan bahwa mereka datang dari JDK yang sama (misalnya: versi 1.8.0_181)

Jika tidak, Anda harus memodifikasi PATHvariabel sehingga hanya menunjuk ke JDK tunggal. Jika Anda tidak yakin bagaimana caranya, cukup hapus instalan semua instance Java lainnya kecuali Java 8 (Tambah / Hapus Program di Windows). Sedangkan untuk hari ini, baik Unity dan Android merekomendasikan agar Anda menggunakan JDK 8.

Dengan Java 8, tidak perlu mengekspor java.se.eemodul seperti yang ditunjukkan pada beberapa jawaban lain. Anda juga dapat menghapus variabel lingkungan apa pun JAVA_OPTSatau yang telah Anda tetapkan.

Gayan Weerakutti
sumber
1

Saya baru-baru ini menyelesaikan masalah ini dengan menghapus versi JDK yang lebih tinggi dan menginstal JDK 8. Setelah menginstal JDK Anda harus memberikan path. Maka Anda perlu membuka command prompt di "C: \ Users \ Milan Adhikari \ AppData \ Local \ Android \ Sdk \ tools" dan jalankan "sdkmanager --update" yang akan memperbarui sdk Anda dan kemudian Anda perlu menjalankan "flutter doctor - -android-lisensi "dalam cmd dan menerima semua lisensi.
Sekarang masalah Anda harus diselesaikan.

Milan Adhikari
sumber
1

Dalam kasus saya, saya memerlukan JDK 8 (mencoba menggunakan AVD dan SDK manager di Qt di bawah Ubuntu) dan 11 untuk alat yang berbeda. Menghapus versi 11 bukan opsi.

Solusi 'JAVA_OPTS' tidak melakukan apa pun. Saya tidak terlalu suka JAVA_HOME ekspor, karena mungkin memaksa Anda melakukan peluncuran alat apa pun yang memanggil utilitas ini dari shell yang sama (seperti Qt), atau memaksa Anda untuk membuat ini permanen, yang tidak nyaman.

Jadi bagi saya solusinya cukup sederhana. Tambahkan sesuatu seperti ini di baris kedua ~ / Android / tools / bin / sdkmanager dan ~ / Android / tools / bin / avdmanager:

JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"

(atau apa pun jalannya ke putaran 8 jdk Anda).

Dengan ini, alat-alat baris perintah ini bekerja dalam mode yang berdiri sendiri, mereka bekerja juga ketika dipanggil oleh alat-alat lain seperti Qt, dan jdk 11 masih merupakan sistem default untuk yang lain. Tidak perlu mencampur lib dll ...

Satu-satunya downside adalah bahwa setiap pembaruan ke alat-alat baris perintah ini akan menghapus modifikasi ini, yang harus Anda masukkan kembali.

Will59
sumber
PUNCAK! Terima kasih!
Funder
0

Turunkan versi java Anda. Apapun sistem atau ide.

Pastikan versi java tidak lebih tinggi dari 8

Dalam kasus saya. Saya mengubah ide java verion. Ini menyelesaikan masalah saya. masukkan deskripsi gambar di sini

anKotliner
sumber
0

Ketika Android stuio / jre Anda menggunakan versi java yang berbeda, Anda akan menerima kesalahan ini. untuk mengatasinya, cukup atur Android studio / jre ke JAVA_HOME Anda. dan uninstall java Anda sendiri.

Licat Julius
sumber
0

Bagi saya saya menginstal java versi 8 dan cukup pilih versi java di "lokasi JDK": masukkan deskripsi gambar di sini

Michael Liesenberg
sumber
0

Untuk keadaan saya, saya menggunakan SDKMAN untuk mengelola beberapa versi java. Saya menetapkan versi java default ke 13. Instal versi 8 dan sekarang berfungsi dengan baik.

Brian Ng
sumber
0

Cara terbaik adalah dengan menggunakan perintah di bawah ini

   $ wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip
   $ unzip \platform-tools-latest-linux.zip
   $ sudo cp platform-tools/adb /usr/bin/adb
   $ sudo cp platform-tools/fastboot /usr/bin/fastboot

Sekarang jalankan versi adb untuk memverifikasi itu telah diperbarui.

zishan paya
sumber