Không thể cài đặt android-sdk:


166

Khi cài đặt công cụ sdk android, lỗi sau đây được phát ra:

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

Tại sao điều này xảy ra và làm thế nào nó có thể được sửa chữa?

Đầu ra gỡ lỗi:

$ 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)

Tôi giả sử câu hỏi của bạn là "Điều gì gây ra lỗi này?" Câu trả lời là nó không thể tìm thấy các lớp javax.xml.
Steve Smith

28
Trên thực tế câu hỏi này đặt ra một vấn đề chính đáng với việc cài đặt sdk android khi có java9
jontro

17
Tôi có vấn đề này và tôi đã sao chép / dán dòng đầu tiên của thông báo lỗi của mình vào google và câu hỏi này là lần đầu tiên xuất hiện. Không chỉ vậy, một trong những câu trả lời dưới đây đã giải quyết nó. Điều này hoàn toàn không nên được đóng lại: bất kể các quy tắc của câu hỏi là gì, câu hỏi này hoàn toàn đáp ứng toàn bộ mục đích của trang web.
Le Mot Juated

1
Xóa mọi thứ cũ hơn Java 8 khỏi/Library/Java/JavaVirtualMachines
Dimitris

2
Sự cố xảy ra với Java 8 và Java 11 trên Ubuntu 18.04 khi sử dụng các gói openjdk-8-jdkopenjdk-11-jdk. Có ai biết phải cài đặt cái gì javax/xml/bind/annotation/XmlSchema, hoặc làm thế nào để tránh javax/xml/bind/annotation/XmlSchematrong NDK không?
jww

Câu trả lời:


138

Tôi đã gặp một vấn đề tương tự sáng nay (cố gắng xây dựng cho Android bằng Unity3D). Tôi đã kết thúc việc gỡ cài đặt JDK9 và cài đặt Bộ công cụ phát triển Java SE 8u144 . Hi vọng điêu nay co ich.

  1. brew cask uninstall java # gỡ cài đặt java9
  2. brew tap homebrew/cask-versions
  3. brew cask install java8 # cài đặt java8
  4. touch ~/.android/repositories.cfg # không có tệp này, lỗi sẽ xảy ra ở bước tiếp theo
  5. brew cask install android-sdk

2
Có lỗi trên windows 10, đã thử điều này, vẫn không hoạt động. Bất cứ lời khuyên?
Vedvart1

3
Tuyệt vời - điều này đã giúp tôi xây dựng một ứng dụng Flutter trong Android Studio. Cảm ơn!
Darragh Enright

20
Điều này đã ngừng hoạt động, ủ thùng cài đặt java8 không hoạt động.
kdy

4
lệnh chính xác dường như là bây giờbrew cask install homebrew/cask-versions/java8
caesarsol

21
brew cask install homebrew/cask-versions/adoptopenjdk8dường như hoạt động
guruz

81

Để giải quyết lỗi này, bạn có thể hạ cấp phiên bản Java của mình.

Hoặc xuất tùy chọn sau trên thiết bị đầu cuối của bạn:

Linux / MAC:

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

Windows :

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

Và để lưu nó vĩnh viễn bạn có thể xuất khẩu JAVA_OPTStrong tập tin cá nhân của bạn trên linux ( .zshrc, .bashrcvà vv) hoặc thêm như biến môi trường vĩnh viễn trên Windows.


ps. Điều này không hoạt động đối với Java 11+, vốn không có các mô đun Java EE. Đối với tùy chọn này là một ý tưởng tốt, hạ cấp phiên bản Java của bạn hoặc chờ cập nhật Flutter .

Tham chiếu: JDK 11: Kết thúc con đường cho các mô-đun Java EE


6
Điều này làm việc với tôi trong Ubuntu 18.04 w / OpenJDK 10.0.2
phát hành vào

3
Làm việc cho tôi trên macOS Mojave (10.14.2) với phiên bản Java "10.0.1" 2018-04-17.
Subfuzion

4
Đã tạo một lỗi mới cho tôi trên macOS Mojave (10.14.2): Xảy ra lỗi trong quá trình khởi tạo lớp khởi động java.lang.module.FindException: Module java.se.ee không tìm thấy
Randy

2
Tôi cũng đã thử 1.8.0_191, nhưng vẫn nhận được: Lỗi: Không thể tìm hoặc tải lớp chính java.se.ee
Randy

1
Tùy chọn này không cần thiết cho Java 8 và không hoạt động cho Java 11, không có các mô-đun Java EE.
valdeci

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

Điều này đã khắc phục sự cố trên Windows cho tôi.

Nguồn 1 , nguồn 2


2
Cũng đã sử dụng điều này trên Ubuntu 16.04 ( exportkhông sử dụng set) và nó đã giải quyết được vấn đề.
Benjamin Conlan

Thiên tài. Cám ơn rất nhiều. Nghĩ rằng tôi sẽ phải thay đổi JVM của mình
flakes

1
Hoạt động như một cơ duyên trên Windows 10 với Java 10
pabz

4
Thật không may, điều đó dường như đã bị xóa hoàn toàn trong Java 11.
Alastair Maw

Đã làm việc export JAVA_OPTS = '-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'trên Ubuntu 18.04
e2-e4

25

Nếu bạn không muốn thay đổi phiên bản Java của mình (Tôi không), bạn có thể tạm thời thay đổi phiên bản trong trình bao của mình:

Lần chạy đầu tiên

/usr/libexec/java_home -V

Sau đó chọn một phiên bản chính nếu bạn đã cài đặt nó, nếu không thì cài đặt nó trước:

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

Bây giờ bạn có thể chạy sdkmanager.


2
$ /usr/libexec/java_home -Vcho bash: /usr/libexec/java_home: No such file or directory. apt-file search /usr/libexec/java_homecho chính xác không có gì.
Tino

Bạn có đặt $ JAVA_HOME chính xác không? Chạy: echo "export JAVA_HOME=`/usr/libexec/java_home`" >> ~/.bashrc(hoặc hồ sơ nếu bạn sử dụng hồ sơ) - tải lại:. ~/.bashrc
Sarah A

Không có /usr/libexecmột trong hai. Bạn có trên MacOS không? (Tôi đang dùng Ubuntu / Linux và Ubuntu / Windows)
Tino

Tôi đang sử dụng mac. Java_home của bạn đâu?
Sarah A

20

Trên Mac / Linux, sử dụng lệnh sau:

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

Hoạt động cho cả JDK 9 và 10, mà không vá bất kỳ tập lệnh nào (sdkmanager, avdmanager).

Đối với Java 11, xem: https://stackoverflow.com/a/51644855/798165


1
cảm ơn! nó giải quyết vấn đề khi bạn đã cài đặt jdk 9
Jorge Valvert

15

Tôi đã tìm thấy hai câu trả lời phù hợp với mình mà không phải gỡ cài đặt JDK 10 (hoặc 9) mà tôi cần create-react-app. Cả JDK 9 và 10 đều không tương thích với android-sdk!


Siu Ching Pong -Asuka Kenji- đề nghị sửa đổi sdkmanagertập lệnh, thay thế dòng này:

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

với:

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

Lưu ý rằng mod này sẽ bị ghi đè khi cập nhật sdkmanager.
Kiểm tra bài đăng của anh ấy, và bài anh ấy liên kết để biết thêm chi tiết.
Giải pháp này cũng là một trong những giải pháp được đề cập trong chủ đề vấn đề github này .


Bài đăng của Đức chỉ ra nguồn gốc của cuộc xung đột và đưa ra cách khắc phục sẽ không bị ghi đè bởi các bản cập nhật.
Ông đề nghị đổi tên /Library/Java/JavaVirtualMachines/Info.plistnhư một phương tiện che khuất nó khỏi tập lệnh tìm kiếm phiên bản Java cao nhất nằm trong hệ thống của bạn. Theo cách này, JDK 8 được trả về làm mặc định.
Đề cập đến JDK 10 một cách rõ ràng hoặc bằng cách đặt nó thành $JAVA_HOME, bạn có thể sử dụng JDK 10, thay vì mặc định, bất cứ khi nào cần.
Thông tin chi tiết trong bài viết của mình.


1
Hoạt động hoàn hảo, giải pháp tốt nhất IMHO vì nó không buộc bạn phải hạ cấp java
4levels

Bằng cách nào đó, sau khi thử nghiệm rất nhiều với áo. Android Studio, sự cố này đã biến mất và lỗi mới là Could not find or load main class java.se.ee- hoàn nguyên DEFAULT_JVM_OPTS đã khắc phục sự cố này và sự cố trước đó đã biến mất ..
4levels

3
Thật không may, điều này không hoạt động bây giờ. Kết quả là: Lỗi xảy ra trong quá trình khởi tạo lớp khởi động java.lang.module.FindException: Module java.se.ee không tìm thấy
Oscar

1
Nâng cấp stackoverflow.com/a/49630166/5411817 để có giải pháp chính xác để giữ jdk-11 và jdk1.8 được cài đặt mà không hạ cấp
harrisjb

15

Bạn cần thêm phần sau vào Hồ sơ của mình (Hoạt động trên MacOS):

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

Không cần phải vá bất cứ điều gì.


15

Chỉ cần cài đặt JDK phiên bản 8 và chọn nó làm mặc định bằng cách sử dụng:

sudo update-alternatives --config java

10

Cập nhật 2019-10:

Như đã nêu trong trình theo dõi sự cố , Google đã làm việc trên Công cụ dòng lệnh SDK Android mới bản phát hành chạy trên các JVM hiện tại (9, 10, 11+) và không phụ thuộc vào các mô-đun JAXB EE không dùng nữa!

Bạn có thể tải xuống và sử dụng Công cụ dòng lệnh SDK Android mới trong Android Studio hoặc bằng cách tải xuống thủ công từ máy chủ Google:

Để biết các phiên bản mới nhất, hãy kiểm tra các URL bên trong repository.xml .

Nếu bạn giải nén thủ công các công cụ dòng lệnh, hãy chú ý đặt chúng vào thư mục con bên trong $ANDROID_HOME(ví dụ $ANDROID_HOME/cmdline-tools/...).


Khi sử dụng Java 9+, đây sẽ là câu trả lời từ bây giờ!
Luiggi Mendoza

9

Thật lạ là Java9 không tương thích với 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

Kết hợp tất cả các lệnh thành một để dễ dàng tham khảo:

$ 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.

8

Vì Java 11 đã xóa JavaEE, bạn sẽ cần tải xuống một số tệp và thêm vào đường dẫn lớp:

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

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

Sau đó chỉnh sửa sdkmanager.bat để đặt CLASSPATH = ... kết thúc bằng ;% CLASSPATH%

Đặt CLASSPATH để bao gồm JAXB và JAF:

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

Sau đó, sdkmanager.bat sẽ hoạt động.


Nó hoạt động, nhưng tôi nhận được cảnh báo này: CẢNH BÁO: Truy cập phản xạ bất hợp pháp bởi com.sun.xml.bind.v2.r nb.reflect.opt.Injection (tệp: / F: / android_sdk / java / jaxb-ri / lib / jaxb -impl.jar) để phương thức java.lang.ClassLoader.defineClass (java.lang.String, byte [], int, int)
AndyMc

Ya, có vẻ như Java đang bắt đầu cảnh báo chống lại thực tiễn lập trình xấu là sử dụng sự phản chiếu để bỏ qua bảo mật lớp, mà JAXB sử dụng (Oracle phá vỡ các quy tắc riêng của họ);)
Peter Quires 10/12/18

4

Tôi gặp vấn đề tương tự khi chạy:

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

Tôi đã giải quyết nó như là

$ 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

Thay đổi Java để sử dụng 1.8

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

Sau đó, cùng một lệnh chạy tốt

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

Đây là trường hợp tốt nhất. Nếu bạn đã xuất JAVA_OPTS. Vui lòng xóa nó trước khi bạn thực hiện các bước từ câu trả lời này.
Kiếm Jason

4

Tôi phải đối mặt với cùng một vấn đề. Mặc dù tôi là một nhà phát triển lạc hậu một chút (Vẫn sử dụng windows để phát triển: P)

Để giải quyết vấn đề này trên windows :

BƯỚC 1: Cài đặt jdk 8 nếu nó chưa được cài đặt (jdk 9 hoặc 11 không hoạt động nhưng bạn có thể cài đặt chúng để sử dụng cho các mục đích sử dụng khác).

Rất đơn giản khi sử dụng Chocolatey:

choco cài đặt jdk8

(Nếu được cài đặt bằng Chocolatey, bỏ qua bước 2 và 3)

BƯỚC 2: Chuyển đến cài đặt biến môi trường và đặt thư mục cài đặt của JAVA_HOME TO jdk 8.

JAVA_HOME

BƯỚC 3: Chuyển đến biến đường dẫn và thêm thư mục bin của jdk 8 và di chuyển nó lên trên cùng.

Đường dẫn

BƯỚC 4: Đóng mọi phiên thiết bị đầu cuối đang mở và khởi động lại một phiên mới

BƯỚC TÙY CHỌN 5: Tùy thuộc vào mục tiêu của bạn trong lần chạy thiết bị đầu cuối (có thể cần thêm sdkmanager vào đường dẫn hoặc chỉ cần điều hướng đến thư mục):

sdkmanager - cập nhật

Đó là tất cả! : O Thưởng thức rung động! : D


1
Điều này cùng với câu trả lời hàng đầu làm việc cho tôi trên windows 10!
mauriii

THANKSSSSSSSSSSSSSS
Raghav Joshi

2

Đối với máy windows, gỡ cài đặt JDK nếu hơn 1.8.172. Cài đặt JDK 1.8.172

Tôi đã gặp vấn đề tương tự trong windows 10 với java 10. Tôi đã gỡ cài đặt java 10 và cài đặt java8 nó hoạt động tốt với tôi bây giờ :)


2

Đối với người dùng Linux (Tôi đang sử dụng Debian Distro, Kali) Đây là cách tôi giải quyết.

Nếu bạn chưa có jdk-8, bạn muốn lấy nó tại trang web của oracle

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

Tôi đã nhận được jdk-8u191-linux-x64.tar.gz

Bước 1 - Cài đặt Java Move và giải nén nó tại một vị trí phù hợp như vậy

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

Bạn sẽ nhận được một thư mục được giải nén như jdk1.8.0_191 Bạn có thể xóa tarball sau đó để tiết kiệm dung lượng

Bước 2 - Thiết lập các lựa chọn thay thế cho vị trí java mặc định

$ 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

Bước 3 - Chọn lựa chọn thay thế của bạn làm mặc định

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

Bước 4 - Xác nhận phiên bản java mặc định

$ java -version

Ghi chú

  1. Trong bài viết gốc tại đây: https://forums.kali.org/showthread.php?41-Installing-Java-on-Kali-Linux , plugin mặc định cho mozilla cũng đã được đặt. Tôi cho rằng chúng ta không thực sự cần các plugin vì chúng ta chỉ đang cố gắng phát triển cho Android.
  2. Như trong câu trả lời của @ spassvogel, bạn cũng nên đặt tệp @ repositories.cfg trong thư mục ~ / .android của mình vì điều này là cần thiết để cập nhật danh sách repo công cụ
  3. Di chuyển một số thứ xung quanh có thể yêu cầu quyền hạn gốc. Sử dụng sudo một cách khôn ngoan.
  4. Để biết cách sử dụng sdkmanager, hãy xem hướng dẫn chính thức: https://developer.android.com/studio/command-line/sdkmanager

1

Chạy java -versionjavac -version ra lệnh trong một dòng lệnh để đảm bảo rằng chúng đến từ cùng một JDK (ví dụ: phiên bản 1.8.0_181)

Nếu không, bạn phải sửa đổi PATHbiến để nó chỉ trỏ đến một JDK duy nhất. Nếu bạn không chắc chắn làm thế nào, chỉ cần gỡ cài đặt tất cả các phiên bản Java khác ngoại trừ Java 8 (Thêm / Xóa chương trình trong Windows). Cho đến hôm nay, cả Unity và Android đều khuyên bạn nên sử dụng JDK 8.

Với Java 8, không cần thiết phải xuất java.se.eemô-đun như trong một số câu trả lời khác. Bạn cũng có thể xóa bất kỳ JAVA_OPTShoặc các biến môi trường khác mà bạn đã đặt.


1

Gần đây tôi đã giải quyết vấn đề này bằng cách gỡ cài đặt phiên bản JDK cao hơn và cài đặt JDK 8. Sau khi cài đặt JDK, bạn cần đưa ra đường dẫn. Sau đó, bạn cần mở dấu nhắc lệnh trong "C: \ Users \ Milan Adhikari \ AppData \ Local \ Android \ Sdk \ tools" và chạy "sdkmanager --update" sẽ cập nhật sdk của bạn và sau đó bạn cần chạy "flutter Doctor - -android-giấy phép "trong cmd và chấp nhận tất cả các giấy phép.
Bây giờ vấn đề của bạn nên được giải quyết.


1

Trong trường hợp của tôi, tôi cần cả JDK 8 (cố gắng sử dụng trình quản lý AVD và SDK trong Qt dưới ubfox) và 11 cho các công cụ khác nhau. Loại bỏ phiên bản 11 không phải là một lựa chọn.

Các giải pháp 'JAVA_OPTS' không làm gì cả. Tôi thực sự không thích JAVA_HOME xuất khẩu, vì nó có thể buộc bạn khởi chạy bất cứ công cụ nào gọi những dụng cụ này từ cùng một vỏ (như Qt), hoặc buộc bạn phải làm điều này vĩnh viễn, không thuận tiện.

Vì vậy, đối với tôi giải pháp khá đơn giản. Thêm một cái gì đó như thế này trong dòng thứ hai của ~ / Android / tools / bin / sdkmanager và ~ / Android / tools / bin / avdmanager:

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

(hoặc bất cứ điều gì đường dẫn đến rev 8 jdk của bạn).

Với điều này, các công cụ dòng lệnh này hoạt động ở chế độ độc lập, chúng cũng hoạt động khi được gọi bởi các công cụ khác như Qt và jdk 11 vẫn là hệ thống mặc định cho các công cụ khác. Không cần trộn libs v.v ...

Nhược điểm duy nhất là mọi cập nhật cho các công cụ dòng lệnh này sẽ xóa các sửa đổi này, mà bạn sẽ phải đưa lại vào.


HÀNG ĐẦU! cảm ơn bạn!
Nhà tài trợ

0

Hạ cấp phiên bản java của bạn. Dù hệ thống hay ide là gì.

Đảm bảo phiên bản java không cao hơn 8

Trong trường hợp của tôi. Tôi thay đổi verion java ide. Điều này giải quyết vấn đề của tôi. nhập mô tả hình ảnh ở đây


0

Khi stuio / jre Android của bạn sử dụng phiên bản java khác, bạn sẽ nhận được lỗi này. để giải quyết nó, chỉ cần đặt studio / jre Android thành JAVA_HOME của bạn. và gỡ cài đặt java của riêng bạn.


0

Đối với tôi, tôi cài đặt phiên bản java 8 và chỉ cần chọn phiên bản java trong "vị trí JDK": nhập mô tả hình ảnh ở đây


0

Đối với hoàn cảnh của tôi, tôi đang sử dụng sdkman để quản lý nhiều phiên bản java. Tôi đặt phiên bản java mặc định thành 13. Cài đặt phiên bản 8 và bây giờ nó hoạt động tốt.


0

Cách tốt nhất là sử dụng lệnh dưới đây

   $ 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

Bây giờ hãy chạy phiên bản adb để xác minh nó đã được cập nhật.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.