无法安装android-sdk:" java.lang.NoClassDefFoundError:javax / xml / bind / annotation / XmlSchema"

时间:2017-09-25 10:16:07

标签: java android java-9

安装android sdk工具时会发出以下错误:

  

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

为什么会发生这种情况?如何解决?

调试输出:

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

34 个答案:

答案 0 :(得分:93)

今天早上我遇到了类似的问题(尝试使用Unity3D为Android构建)。我最终卸载了JDK9并安装了Java SE Development Kit 8u144。希望这会有所帮助。

  1. brew cask uninstall java#uninstall java9
  2. brew tap caskroom/versions
  3. brew cask install java8 #install java8
  4. touch ~/.android/repositories.cfg#没有此文件,下一步会发生错误
  5. brew cask install android-sdk

答案 1 :(得分:61)

  • 我也遇到了这个错误
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.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
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:190)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
        ... 5 more
  • 然后,而不是卸载最新的 java 环境,(在我的例子中是 java 13)
  • 和安装java 8
  • 我已完成以下步骤
  • open the android studio > go to configure > select sdk manager > go to sdk tools > make a tick on android sdk command line tools >apply > and wait for installation

enter image description here

enter image description here enter image description here

  • 重启命令行工具 enter image description here

  • 输入命令flutter doctor

  • 输入命令flutter doctor --android-licenses

  • 并通过输入 y

    接受所有许可

enter image description here

答案 2 :(得分:52)

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

这解决了我在Windows上的问题。

Source 1source 2

答案 3 :(得分:45)

要解决此错误,您可以降级Java版本。

或在您的终端上导出以下选项:

Linux / MAC:

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

Windows

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

要永久保存它,您可以将JAVA_OPTS导出到Linux上的配置文件中(.zshrc.bashrc等),或在Windows上永久添加为环境。


ps。。这不适用于Java 11+,因为Java 11+没有Java EE模块。使用此选项是个好主意,请降级Java版本或等待Flutter update

参考:JDK 11: End of the road for Java EE modules

答案 4 :(得分:14)

在Mac / Linux上使用:
export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

适用于JDK 9和10,无需修补任何脚本(sdkmanager,avdmanager)

答案 5 :(得分:10)

遇到这个错误,可以通过在Android SDK Command-line Tools (latest)下的Android Studio中下载settings > Appearance & Behavior > System Settings > Android SDK > SDK Tools并重新运行flutter doctor --android-licenses

来解决。

Android SDK path on Android Studio

Command-line Tools

答案 6 :(得分:7)

奇怪的是Java9与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

将所有命令合并为一个以便于参考:

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

答案 7 :(得分:7)

您需要在个人资料中添加以下内容(在MacOS上适用):

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

无需打补丁。

答案 8 :(得分:6)

由于Java 11删除了JavaEE,因此您需要下载一些jar并将其添加到类路径中:

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

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

然后编辑sdkmanager.bat,以使 set CLASSPATH = ... ;%CLASSPATH%

结尾

设置CLASSPATH以包括JAXB和JAF:

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

然后sdkmanager.bat将起作用。

答案 9 :(得分:4)

如果您不想更改Java版本(我不需要)。您可以在外壳中临时更改版本:

首次运行

/usr/libexec/java_home -V

然后选择主要版本(如果已安装),否则请首先安装:

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

现在您可以运行sdkmanager

答案 10 :(得分:4)

只需安装JDK版本8,然后使用以下命令将其选择为默认版本:

sudo update-alternatives --config java

答案 11 :(得分:3)

就我而言,我需要同时使用JDK 8(试图在ubuntu下的Qt中使用AVD和SDK管理器)和11来使用不同的工具。无法删除版本11。

“ JAVA_OPTS”解决方案没有执行任何操作。我真的不喜欢导出JAVA_HOME,因为它可能会迫使您从同一外壳(例如Qt)启动任何调用这些utils的工具,或者迫使您将其永久化,这不方便。

所以对我而言,解决方案非常简单。在〜/ Android / tools / bin / sdkmanager和〜/ Android / tools / bin / avdmanager的第二行中添加类似的内容:

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

(或任何通往版本8 jdk的路径)。

有了这些,这些命令行工具就可以在独立模式下工作,当被其他工具(例如Qt)调用时,它们也可以工作,而jdk 11仍然是其他人的系统默认设置。无需混合库等...

唯一的缺点是对这些命令行工具的任何更新都将删除这些修改,您必须将这些修改放回去。

答案 12 :(得分:2)

就我而言,我的机器上没有安装所需的 sdk 版本。

因此请确保您已安装错误中给出的 sdk 版本。

您可以在此处通过 Android Studio 导航检查和安装。

Android Stuido SDK Manager

答案 13 :(得分:2)

更新2019-10:

stated in the issue tracker一样,Google正在开发一个新的 Android SDK命令行工具版本,该版本可在当前JVM(9、10、11+)上运行,并且不依赖于已弃用的JAXB EE模块!

您已经可以在Android Studio内的canary频道上下载并使用新的 Android SDK命令行工具,也可以通过从Google服务器手动下载它们来

对于最新版本,请检查repository.xml内的URL。

如果您手动解压缩命令行工具,请注意将其放在$ANDROID_HOME(例如$ANDROID_HOME/cmdline-tools/...)内的子文件夹中。

答案 14 :(得分:2)

TLDR;尝试在OSX上设置JAVA_HOME对我来说效果很好

export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

要从AdoptOpenJDK安装JDK 8(LTS):

# brew tap adoptopenjdk/openjdk

brew cask install adoptopenjdk/openjdk/adoptopenjdk8

答案 15 :(得分:2)

就我而言,我有Java 14,需要Java 8。

我在Arch Linux中,已经安装了jdk8-openjdk jre8-openjdk https://www.archlinux.org/packages/extra/x86_64/java8-openjdk/

对于Debian用户https://wiki.debian.org/Java或Fedora https://docs.fedoraproject.org/en-US/quick-docs/installing-java/

在执行以下步骤之前,使用包管理器安装Java 8(或所需版本,在这种情况下为jdk8-openjdk jre8-openjdk)。


1。找出我的Java在哪里:

# which java
/usr/bin/java

2。检查Java文件:

我可以看到这里的所有Java文件都是指向/usr/lib/jvm/default[something]的链接。这意味着java命令已链接到java可执行文件的某些特定版本。

# ls -l /usr/bin/java*
lrwxrwxrwx 1 root root 37 May 16 06:30 /usr/bin/java -> /usr/lib/jvm/default-runtime/bin/java
lrwxrwxrwx 1 root root 30 May 16 06:30 /usr/bin/javac -> /usr/lib/jvm/default/bin/javac
lrwxrwxrwx 1 root root 32 May 16 06:30 /usr/bin/javadoc -> /usr/lib/jvm/default/bin/javadoc
lrwxrwxrwx 1 root root 30 May 16 06:30 /usr/bin/javah -> /usr/lib/jvm/default/bin/javah
lrwxrwxrwx 1 root root 30 May 16 06:30 /usr/bin/javap -> /usr/lib/jvm/default/bin/javap

3。检查defaultdefault-runtime

在这里我可以看到默认版本已链接到14(唯一安装的版本)。

# cd /usr/lib/jvm
# ls -l
lrwxrwxrwx 1 root root   14 Aug  8 20:44 default -> java-14-openjdk
lrwxrwxrwx 1 root root   14 Aug  8 20:44 default-runtime -> java-14-openjdk
drwxr-xr-x 7 root root 4096 Jul 19 22:38 java-14-openjdk
drwxr-xr-x 6 root root 4096 Aug  8 20:42 java-8-openjdk

4。切换默认版本

首先,删除链接到Java-14版本的现有defaultdefault-runtime

# rm default default-runtime

然后,创建指向所需版本(在本例中为Java-8)的新链接。

# link -s java-8-openjdk default
# link -s java-8-openjdk default-runtime

该策略是使用上面的ln -s链接到所需版本的软件(在本例中为java8)。然后,此链接链接到java bin目录内的二进制文件(,无需更改$PATH环境变量!


或者您可能希望使用archlinux-java命令来更改Java版本,而要使用更安全的方法:https://wiki.archlinux.org/index.php/Java

答案 16 :(得分:1)

对于Linux用户(我正在使用Debian Distro,Kali) 这是我解决我问题的方法。

如果您还没有jdk-8,则想在oracle网站上获取它

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

我得到了jdk-8u191-linux-x64.tar.gz

第1步-安装Java 像这样在合适的位置移动并打开包装

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

您应该获得一个未压缩的文件夹,如jdk1.8.0_191 您可以随后删除压缩包以节省空间

第2步-设置默认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

第3步-选择默认选项

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

第4步-确认默认Java版本

$ java -version

注释

  1. 在此处的原始文章中:https://forums.kali.org/showthread.php?41-Installing-Java-on-Kali-Linux, 还设置了mozilla的默认插件。我认为我们实际上并不需要插件 只是尝试为Android开发。
  2. 就像@spassvogel的答案一样,您还应该在您的〜/ .android目录中放置一个@ repositories.cfg文件。 因为这是更新工具仓库列表所需要的
  3. 四处移动可能需要root用户权限。明智地使用sudo。
  4. 有关sdkmanager的用法,请参见官方指南:https://developer.android.com/studio/command-line/sdkmanager

答案 17 :(得分:1)

在命令行中运行java -versionjavac -version命令以确保它们来自同一JDK(例如:1.8.0_181版)

如果没有,则必须修改PATH变量,使其仅指向单个JDK。如果不确定如何安装,只需卸载Java 8(Windows中的“添加/删除程序”)以外的所有其他Java实例。今天,Unity和Android都建议您使用JDK 8。

对于Java 8,不需要像其他一些答案中所示的那样导出java.se.ee模块。您也可以删除自己设置的任何JAVA_OPTS或其他environment variables

答案 18 :(得分:1)

对于Windows机器卸载JDK,如果它超过1.8.172。 安装JDK 1.8.172

我在使用java 10的Windows 10中遇到了同样的问题。我卸载了java 10并安装了java8,它现在对我来说工作正常:)

答案 19 :(得分:1)

从最新版本的Android命令行工具(截至撰写本文时为2.1)开始,不再需要修补sdkmanager或降级到Java的较旧版本。

只需更新您的SDK软件包,并将命令行工具切换到latest版本,该版本就会跟踪新版本的出现:

sdkmanager --update
sdkmanager 'cmdline-tools;latest'
sdkmanager --uninstall 'cmdline-tools;1.0'

如果sdkmanager不在您的PATH上,则可能需要提供完整的路径;如果引用了{{1 }}工具。

答案 20 :(得分:1)

我最近通过卸载更高版本的JDK并安装JDK 8解决了此问题。安装JDK之后,您需要提供路径。然后,您需要在“ C:\ Users \ Milan Adhikari \ AppData \ Local \ Android \ Sdk \ tools”中打开命令提示符,然后运行“ sdkmanager --update”,这将更新您的sdk,然后您需要运行“ flutter doctor- -android-licenses”并接受所有许可证。
现在您的问题应该解决了。

答案 21 :(得分:1)

@steven指出,安装Java 8(此处是Ubuntu 16.04、18.04和20.04 / 20.10 https://computingforgeeks.com/how-to-install-java-8-on-ubuntu/的链接),然后使用以下命令将其设置为默认Java版本:

sudo update-alternatives --config java

答案 22 :(得分:0)

更新了我当前的 Android SDK,一切都非常棒。

答案 23 :(得分:0)

我遇到了同样的问题,并按照建议安装了openjdk-8-jdk。检查javac -version得到的版本正确,但是java -version显示的是版本11。

解决方案是使用:

sudo update-alternatives --config java

,然后从菜单中选择版本8。

答案 24 :(得分:0)

这个问题有很多答案,而且由于用户安装了不同的工具链并使用了不同的Java版本,所以答案也有所不同。

使用Android开发工具链的推荐方法,或者至少是我建议使用的一种方法,是遵循Android Studio文档中的规定:

您应该始终通过使用Android SDK管理器下载最新版本来更新构建工具组件。

Android Studio允许您轻松管理已安装的SDK和构建工具,是的,它在硬盘驱动器上需要一些空间,但可以节省一些时间。熟悉其工作原理后,您可以考虑只安装命令行工具。

如果没有特殊原因使用较旧的Java版本,请使用最新的(稳定)版本,您将拥有有趣的新功能,并且编译后的应用程序将从所有新的优化中受益。

新安装

  1. 删除本地Android文件夹,通常在主目录中
  2. Download Android studio
  3. 安装后,打开Settings,搜索Android SDK,然后打开
  4. SDK Platforms中为您的应用选择目标Android版本
  5. SDK Tools标签中,选择Android SDK Build-ToolsAndroid SDK Command-line Tools (latest)Android EmulatorAndroid SDK Platform-Tools
  6. 按“确定”之前,请检查Android SDK Location路径是否适合您
  7. 按“确定”,然后让Android Studio下载并安装所有内容

(可选),如果需要从命令行使用已安装的二进制文件,请确保将其文件夹添加到PATH变量中。如果您使用的是Android Studio,则不需要。

我已经在计算机上安装了Java 14,无论如何您都可以使用Android Studio随附的jre。

答案 25 :(得分:0)

我的 Java 版本是 15.0.1 。适用于 Mac 操作系统。

这就是我解决问题的方法。

  1. 下载的 zip:jaf-1_1_1.zip 来自:https://download.oracle.com/otn-pub/java/jaf/1.1.1/jaf-1_1_1.zip?AuthParam=1609860571_68ca6f30491c76e81970a3849504fb6a

  2. https://download.oracle.com/otn-pub/java/jaf/1.1.1/jaf-1_1_1.zip?AuthParam=1609860571_68ca6f30491c76e81970a3849504fb6a

    下载了 zip:jaxb-ri-2.3.1.zip
  3. 解压到一个文件夹: ~/jars/ 。导出的类路径如下

export  
 CLASSPATH=~/jars/FastInfoset.jar:~/jars/activation.jar:~/jars/codemodel.jar:~/jars/dtd-parser.jar:~/jars/istack-commons-runtime.jar:~/jars/istack-commons-tools.jar:~/jars/jaf-1.1.1:~/jars/jaf-1_1_1.zip:~/jars/javax.activation-api.jar:~/jars/jaxb-api.jar:~/jars/jaxb-jxc.jar:~/jars/jaxb-ri:~/jars/jaxb-ri-2.3.1.zip:~/jars/jaxb-runtime.jar:~/jars/jaxb-xjc.jar:~/jars/relaxng-datatype.jar:~/jars/rngom.jar:~/jars/stax-ex.jar:~/jars/txw2.jar:~/jars/xsom.jar
  1. 接下来编辑文件:cd ~/Library/Android/sdk/tools/bin/sdkmanager 将 CLASSPATH 更改为以下内容

CLASSPATH=$CLASSPATH:$APP...

保存文件并再次运行命令。

答案 26 :(得分:0)

无需卸载计算机上已经安装的其他Java版本。无论何时需要,您都可以方便地使用实用程序“ update-alternatives”来选择要激活的Java运行时。它将自动更新所需的符号链接。

您只需要运行以下命令并选择所需的版本。仅此而已!

sudo update-alternatives --config java

答案 27 :(得分:0)

最好的方法是使用以下命令

   $ 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

现在运行adb版本以验证其已更新。

答案 28 :(得分:0)

对于我来说,我正在使用sdkman管理多个Java版本。我将默认Java版本设置为13。安装版本8,现在可以正常使用了。

答案 29 :(得分:0)

对我来说,我安装Java版本8,然后在“ JDK位置”中选择Java版本: enter image description here

答案 30 :(得分:0)

我遇到了同样的问题。虽然我有点落后,但是仍然使用Windows来开发:P。

要在Windows上解决此问题,

如果尚未安装jdk 8,请安装它(jdk 9或11无法使用,但您可能已经安装了它们,以用于其他开发用途)。

步骤1:转到“环境变量”设置,并将JAVA_HOME设置为jdk 8的安装目录。

JAVA_HOME

第2步:转到路径变量,然后添加jdk 8的bin目录,并将其移至顶部。

Path_varriable

第3步:重新启动计算机。

步骤4:打开Powershell并写入(您到应用程序数据的路径)... \ AppData \ Local \ Android \ sdk \ tools \ bin \ sdkmanager --update

仅此而已:O。享受飘飘:D。

答案 31 :(得分:0)

当您的Android stuio / jre使用不同版本的Java时,您会收到此错误。要解决此问题,只需将Android studio / jre设置为您的JAVA_HOME。并卸载自己的Java。

答案 32 :(得分:0)

降级您的Java版本。无论是哪种系统或ide。

确保Java版本不高于8

以我为例,我更改了ide java版本,这解决了我的问题。 enter image description here

答案 33 :(得分:0)

运行时遇到同样的问题

$ / Users // Library / Android / sdk / tools / bin / sdkmanager“ platforms; android-28”“ build-tools; 28.0.3”

解决为 $ 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

将Java更改为使用1.8

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

然后相同的命令运行正常 $ / Users // Library / Android / sdk / tools / bin / sdkmanager“ platforms; android-28”“ build-tools; 28.0.3”