Nie udało się zainstalować android-sdk: „java.lang.NoClassDefFoundError: javax / xml / bind / annotation / XmlSchema”

167

Podczas instalowania narzędzi Android SDK emitowany jest następujący błąd:

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

Dlaczego tak się dzieje i jak można to naprawić?

Wyjście debugowania:

$ 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
źródło
Zakładam, że Twoje pytanie brzmi „Co powoduje ten błąd?” Odpowiedź jest taka, że ​​nie może znaleźć klas javax.xml.
Steve Smith
28
Właściwie to pytanie dotyczy uzasadnionego problemu z instalacją zestawu SDK z Androidem, gdy mam java9
jontro
17
Mam ten problem i skopiowałem / wkleiłem pierwszą linię mojego komunikatu o błędzie do Google, a to pytanie było pierwszym trafieniem, które się pojawiło. Co więcej, jedna z poniższych odpowiedzi rozwiązała ten problem. Nie powinno to być całkowicie zamknięte: bez względu na zasady dotyczące pytań, pytanie to w oczywisty sposób spełnia cały cel witryny.
Le Mot Juiced
1
Usuń wszystko, co jest starsze niż Java 8 z/Library/Java/JavaVirtualMachines
Dimitris
2
Problem występuje w przypadku języków Java 8 i Java 11 w systemie Ubuntu 18.04 przy użyciu pakietów openjdk-8-jdki openjdk-11-jdk. Czy ktoś wie, po co zainstalować javax/xml/bind/annotation/XmlSchemalub jak uniknąć javax/xml/bind/annotation/XmlSchemaw NDK?
jww

Odpowiedzi:

138

Miałem dziś rano podobny problem (próbowałem zbudować dla Androida przy użyciu Unity3D). Skończyło się na odinstalowaniu JDK9 i zainstalowaniu Java SE Development Kit 8u144 . Mam nadzieję że to pomoże.

  1. brew cask uninstall java # odinstaluj java9
  2. brew tap homebrew/cask-versions
  3. brew cask install java8 # install java8
  4. touch ~/.android/repositories.cfg # bez tego pliku w następnym kroku wystąpi błąd
  5. brew cask install android-sdk
spassvogel
źródło
2
Mam błąd w systemie Windows 10, próbowałem tego, nadal nie działa. Jakieś wskazówki?
Vedvart1
3
Świetnie - to zadziałało dla mnie podczas tworzenia aplikacji Flutter w Android Studio. Dzięki!
Darragh Enright
20
To przestało działać, instalacja java8 w beczce zaparzonej nie działa.
kdy
4
wydaje się, że właściwe polecenie brzmi terazbrew cask install homebrew/cask-versions/java8
caesarsol
21
brew cask install homebrew/cask-versions/adoptopenjdk8wydaje się działać
guruz
82

Aby rozwiązać ten błąd, możesz obniżyć wersję Java.

Lub eksportuje następującą opcję na swoim terminalu:

Linux / MAC:

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

Okna :

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

I aby go zapisać na stałe można eksport JAVA_OPTSw pliku profilu na Linux ( .zshrc, .bashrci itp) lub dodać jako zmienną środowiskową na stałe w systemie Windows.


ps. To nie działa dla Java 11+, która nie ma modułów Java EE. W przypadku tej opcji dobrym pomysłem jest obniżenie wersji Javy lub czekanie na aktualizację Fluttera .

Ref: JDK 11: Koniec drogi dla modułów Java EE

valdeci
źródło
6
To zadziałało dla mnie w Ubuntu 18.04 z OpenJDK 10.0.2
rastating
3
Pracował dla mnie na macOS Mojave (10.14.2) z wersją Java „10.0.1” 17.04.2018.
Subfuzion
4
Utworzono dla mnie nowy błąd w systemie macOS Mojave (10.14.2): Wystąpił błąd podczas inicjowania warstwy rozruchowej java.lang.module.FindException: Nie znaleziono modułu java.se.ee
Randy
2
Próbowałem też 1.8.0_191, ale wciąż otrzymuję: Błąd: Nie można odnaleźć lub załadować głównej klasy java.se.ee
Randy
1
Ta opcja nie jest potrzebna dla Java 8 i nie działa dla Java 11, która nie ma modułów Java EE.
valdeci
64
set JAVA_OPTS=-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee

To rozwiązało problem w systemie Windows.

Źródło 1 , źródło 2

Tim Jenßen
źródło
2
Użyłem tego również na Ubuntu 16.04 (używając exportnie set) i rozwiązało problem.
Benjamin Conlan
Geniusz. Dzięki wielkie. Pomyślałem, że będę musiał zmienić moje JVM
flakes
1
Działał jak urok w systemie Windows 10 z Javą 10
pabz
4
Niestety wydaje się, że zostało to całkowicie usunięte w Javie 11.
Alastair Maw
Pracowałem export JAVA_OPTS = '-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'nad Ubuntu 18.04
e2-e4
25

Jeśli nie chcesz zmieniać wersji Javy (ja nie mam), możesz tymczasowo zmienić wersję w swojej powłoce:

Pierwszy bieg

/usr/libexec/java_home -V

Następnie wybierz wersję główną, jeśli jest zainstalowana, w przeciwnym razie zainstaluj ją najpierw:

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

Teraz możesz uruchomić sdkmanager.

Sarah A.
źródło
2
$ /usr/libexec/java_home -Vdaje bash: /usr/libexec/java_home: No such file or directory. apt-file search /usr/libexec/java_homenic nie daje.
Tino
Czy masz poprawnie ustawiony $ JAVA_HOME? Uruchom: echo "export JAVA_HOME=`/usr/libexec/java_home`" >> ~/.bashrc(lub profil, jeśli używasz profilu) - przeładuj:. ~/.bashrc
Sarah A
Nie ma /usr/libexecteż. Czy korzystasz z MacOS? (Jestem na Ubuntu / Linux i Ubuntu / Windows)
Tino
Używam mac. gdzie jest twój Java_home?
Sarah A,
21

W systemie Mac / Linux użyj następującego polecenia:

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

Działa zarówno dla JDK 9, jak i 10, bez łatania żadnego skryptu (sdkmanager, avdmanager).

W przypadku Java 11 patrz: https://stackoverflow.com/a/51644855/798165

oori
źródło
1
dzięki! rozwiązuje problem po zainstalowaniu jdk 9
Jorge Valvert
15

Znalazłem dwie odpowiedzi, które działały dla mnie, bez konieczności odinstalowywania JDK 10 (lub 9), czego potrzebuję create-react-app. JDK 9 i 10 są niekompatybilne z android-sdk!


Siu Ching Pong -Asuka Kenji- sugeruje modyfikację sdkmanagerskryptu, zastępując następującą linię:

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

z:

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

Zauważ, że ten mod zostanie nadpisany podczas aktualizacji sdkmanager.
Sprawdź jego post i ten, do którego prowadzi, aby uzyskać więcej informacji.
To rozwiązanie było również jednym z rozwiązań wymienionych w tym wątku dotyczącym problemów na githubie .


Niemiecki post wskazuje na źródło konfliktu i przedstawia poprawkę, która nie zostanie nadpisana przez aktualizacje.
Sugeruje zmianę nazwy, /Library/Java/JavaVirtualMachines/Info.plistaby ukryć ją przed skryptem, który szuka najwyższej wersji Javy znajdującej się w systemie. W ten sposób JDK 8 jest zwracany jako domyślny.
Odwołując się bezpośrednio do JDK 10 lub ustawiając go na $JAVA_HOME, możesz w razie potrzeby używać JDK 10 zamiast domyślnego.
Szczegóły w jego poście.

SherylHohman
źródło
1
Działało idealnie, najlepsze rozwiązanie IMHO, ponieważ nie zmusza Cię do obniżenia wersji Java
4levels
Jakoś po wielu eksperymentach z ao. Android Studio, ten problem zniknął, a nowym błędem było Could not find or load main class java.se.ee- przywrócenie DEFAULT_JVM_OPTS naprawiło to i poprzedni problem zniknął ..
4levels
3
Niestety teraz to nie działa. Wynik: Wystąpił błąd podczas inicjowania warstwy rozruchowej java.lang.module.FindException: Nie znaleziono modułu java.se.ee
Oscar
1
Uznano stackoverflow.com/a/49630166/5411817 za poprawne rozwiązanie do utrzymania jdk-11 i jdk1.8 zainstalowanych bez obniżania wersji
harrisjb
15

Musisz dodać następujące informacje do swojego profilu (działa na MacOS):

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

Nie musisz niczego poprawiać.

Farsheed
źródło
15

Po prostu zainstaluj JDK w wersji 8 i wybierz go jako domyślny, używając:

sudo update-alternatives --config java
Steven
źródło
11

Aktualizacja 2019-10:

Jak stwierdzono w narzędziu do śledzenia problemów , Google pracuje nad nowym zestawem narzędzi wiersza poleceń Android SDK wersją która działa na obecnych maszynach JVM (9, 10, 11+) i nie jest zależna od przestarzałych modułów JAXB EE!

Możesz pobrać i używać nowych narzędzi wiersza poleceń Android SDK w Android Studio lub ręcznie pobierając je z serwerów Google:

Aby uzyskać najnowsze wersje, sprawdź adresy URL w repository.xml .

Jeśli ręcznie rozpakujesz narzędzia wiersza poleceń, zadbaj o umieszczenie ich w podfolderze wewnątrz swojego $ANDROID_HOME(np $ANDROID_HOME/cmdline-tools/....).

G00fY
źródło
1
W przypadku korzystania z Javy 9+ to powinna być odpowiedź od teraz!
Luiggi Mendoza
9

O dziwo, Java9 nie jest kompatybilna z 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

Połączono wszystkie polecenia w jedno dla łatwego odniesienia:

$ 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.
Cóż, Smith
źródło
8

Ponieważ Java 11 usunęła JavaEE, musisz pobrać kilka plików jar i dodać do ścieżki klas:

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

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

Następnie edytuj sdkmanager.bat tak, aby parametr CLASSPATH = ... kończył się na ;% CLASSPATH%

Ustaw CLASSPATH tak, aby zawierał JAXB i JAF:

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

Wtedy sdkmanager.bat będzie działać.

Peter Quiring
źródło
Działa, ale pojawia się to ostrzeżenie: OSTRZEŻENIE: Nielegalny odblaskowy dostęp przez com.sun.xml.bind.v2.runtime.reflect.opt.Injector (plik: / F: / android_sdk / java / jaxb-ri / lib / jaxb -impl.jar) do metody java.lang.ClassLoader.defineClass (java.lang.String, byte [], int, int)
AndyMc
Ya, wygląda jak Java zaczynają ostrzegać przed złych praktyk programowania przy użyciu odbicia do zabezpieczenia klasy bypass, który korzysta JAXB (Oracle łamiąc własne zasady);)
Peter Quiring
4

Napotkałem ten sam problem podczas uruchamiania:

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

Rozwiązałem to jako

$ 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

Zmień Javę na 1.8

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

Wtedy to samo polecenie działa dobrze

$ /Users/<username>/Library/Android/sdk/tools/bin/sdkmanager "platforms;android-28" "build-tools;28.0.3"
Sandeep
źródło
To jest najlepszy przypadek. Jeśli już eksportujesz JAVA_OPTS. Usuń go najpierw, zanim wykonasz czynności opisane w tej odpowiedzi.
Sword Jason
4

Miałem ten sam problem. Chociaż jestem trochę przestarzałym programistą (nadal używam Windowsa do tworzenia: P)

Aby rozwiązać ten problem w systemie Windows :

KROK 1: Zainstaluj jdk 8, jeśli nie był zainstalowany (jdk 9 lub 11 nie działa, ale możesz mieć je zainstalowane do użytku w innych zastosowaniach deweloperskich).

Bardzo proste przy użyciu Chocolatey:

choco zainstaluj jdk8

(W przypadku instalacji przy użyciu Chocolatey, pomiń kroki 2 i 3)

KROK 2: Przejdź do ustawień zmiennych środowiskowych i ustaw katalog instalacyjny JAVA_HOME TO jdk 8.

JAVA_HOME

KROK 3: Przejdź do zmiennej ścieżki i dodaj katalog bin jdk 8 i przenieś go na górę.

Zmienna_ścieżka

KROK 4: Zamknij wszystkie otwarte sesje terminala i zrestartuj nową sesję

OPCJONALNY KROK 5: W zależności od celu w uruchomieniu terminala (może być konieczne dodanie sdkmanagera do ścieżki lub po prostu przejdź do katalogu):

sdkmanager --update

To wszystko! : O Ciesz się trzepotaniem! :RE

THE_BLESSED_MEDIUM
źródło
1
To wraz z najlepszą odpowiedzią zadziałało dla mnie w systemie Windows 10!
mauriii
THANKSSSSSSSSSSSSSS
Raghav Joshi
2

W przypadku komputera z systemem Windows odinstaluj pakiet JDK, jeśli jest większy niż 1.8.172. Zainstaluj JDK 1.8.172

Miałem ten sam problem w systemie Windows 10 z java 10. Odinstalowałem java 10 i zainstalowałem java8, teraz działa dobrze :)

Jagan
źródło
2

Dla użytkowników Linuksa (używam Debian Distro, Kali) Oto jak rozwiązałem mój.

Jeśli nie masz jeszcze jdk-8, chcesz go pobrać z witryny oracle

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

Mam plik jdk-8u191-linux-x64.tar.gz

Krok 1 - Instalacja Java Move i rozpakuj ją w odpowiednim miejscu

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

Powinieneś otrzymać rozpakowany folder taki jak jdk1.8.0_191 Możesz później usunąć archiwum aby zaoszczędzić miejsce

Krok 2 - Konfigurowanie alternatyw dla domyślnej lokalizacji Java

$ 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

Krok 3 - Wybór alternatyw jako domyślnych

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

Krok 4 - Potwierdzenie domyślnej wersji Java

$ java -version

Uwagi

  1. W oryginalnym artykule tutaj: https://forums.kali.org/showthread.php?41-Installing-Java-on-Kali-Linux ustawiono również domyślną wtyczkę dla Mozilli. Zakładam, że tak naprawdę nie potrzebujemy wtyczek, ponieważ po prostu próbujemy programować dla Androida.
  2. Podobnie jak w odpowiedzi @ spassvogel, powinieneś również umieścić plik @ repositories.cfg w swoim katalogu ~ / .android, ponieważ jest to potrzebne do aktualizacji list repozytoriów narzędzi
  3. Przenoszenie niektórych rzeczy może wymagać uprawnień administratora. Używaj sudo mądrze.
  4. Informacje na temat korzystania z sdkmanager można znaleźć w oficjalnym przewodniku: https://developer.android.com/studio/command-line/sdkmanager
hugovicfortman
źródło
1

Uruchom java -versionijavac -version polecenia w wierszu poleceń, aby upewnić się, że pochodzą z tego samego JDK (np .: wersja 1.8.0_181)

Jeśli nie, musisz zmodyfikować PATHzmienną tak, aby wskazywała tylko na jeden JDK. Jeśli nie jesteś pewien, jak to zrobić, po prostu odinstaluj wszystkie inne wystąpienia Java z wyjątkiem Java 8 (Dodaj / usuń programy w systemie Windows). Na dzień dzisiejszy zarówno Unity, jak i Android zalecają używanie JDK 8.

W przypadku języka Java 8 nie jest konieczne eksportowanie java.se.eemodułu, jak pokazano w niektórych innych odpowiedziach. Możesz także usunąć dowolne JAVA_OPTSlub inne ustawione przez siebie zmienne środowiskowe .

Gayan Weerakutti
źródło
1

Niedawno rozwiązałem ten problem, odinstalowując wyższą wersję JDK i instalując JDK 8. Po zainstalowaniu JDK musisz podać ścieżkę. Następnie musisz otworzyć wiersz poleceń w "C: \ Users \ Milan Adhikari \ AppData \ Local \ Android \ Sdk \ tools" i uruchomić "sdkmanager --update", który zaktualizuje twój sdk, a następnie musisz uruchomić "flutter doctor - -android-License ”w cmd i zaakceptuj wszystkie licencje.
Teraz twój problem powinien zostać rozwiązany.

Milan Adhikari
źródło
1

W moim przypadku potrzebuję zarówno JDK 8 (próbuję użyć menedżera AVD i SDK w Qt pod Ubuntu), jak i 11 dla różnych narzędzi. Usunięcie wersji 11 nie wchodzi w grę.

Rozwiązania „JAVA_OPTS” nic nie dały. Nie podoba mi się eksport JAVA_HOME, ponieważ może to zmusić cię do uruchomienia dowolnego narzędzia wywołującego te narzędzia z tej samej powłoki (jak Qt) lub zmusić cię do uczynienia tego trwałym, co nie jest wygodne.

Więc dla mnie rozwiązanie jest dość proste. Dodaj coś takiego w drugiej linii ~ / Android / tools / bin / sdkmanager i ~ / Android / tools / bin / avdmanager:

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

(lub jakakolwiek jest ścieżka do twojego rev 8 jdk).

Dzięki temu te narzędzia wiersza poleceń działają w trybie samodzielnym, działają również, gdy są wywoływane przez inne narzędzia, takie jak Qt, a jdk 11 jest nadal domyślnym systemem dla innych. Nie ma potrzeby mieszania bibliotek itp.

Jedynym minusem jest to, że każda aktualizacja tych narzędzi wiersza poleceń spowoduje usunięcie tych modyfikacji, które będziesz musiał ponownie wprowadzić.

Will59
źródło
TOP! Dziękuję Ci!
Funder
0

Zmień wersję java na starszą, niezależnie od systemu lub ide.

Upewnij się, że wersja Java nie jest wyższa niż 8

W moim przypadku Zmieniam wersję ide java, co rozwiązuje mój problem. wprowadź opis obrazu tutaj

anKotliner
źródło
0

Gdy Twój Android stuio / jre używa innej wersji Java, pojawi się ten błąd. Aby go rozwiązać, po prostu ustaw Android studio / jre na JAVA_HOME. i odinstaluj własną java.

Licat Julius
źródło
0

Dla mnie instaluję java w wersji 8 i po prostu wybieram wersję java w "lokalizacji JDK": wprowadź opis obrazu tutaj

Michael Liesenberg
źródło
0

W moim przypadku używam sdkman do zarządzania wieloma wersjami Java. Ustawiłem domyślną wersję java na 13. Zainstaluj wersję 8 i teraz działa dobrze.

Brian Ng
źródło
0

Najlepszym sposobem jest użycie poniższego polecenia

   $ 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

Teraz uruchom wersję adb, aby sprawdzić, czy została zaktualizowana.

zishan paya
źródło