“由于未接受某些许可证,无法安装以下Android SDK软件包”错误


143

我在jitpack中遇到此错误,我已经尝试了Internet上的所有内容。以下是我的错误

Failed to install the following Android SDK packages as some licences have not been accepted.
     platforms;android-26 Android SDK Platform 26
     build-tools;28.0.3 Android SDK Build-Tools 28.0.3
  To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.

当我运行./sdkmanager --licenses

 All SDK package licenses accepted.======] 100% Computing updates...             

在上面的命令中使用sudo可以得到

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

附加错误日志

File /opt/android-sdk-linux/.android/repositories.cfg could not be loaded.
Checking the license for package Android SDK Build-Tools 28.0.3 in /opt/android-sdk-linux/licenses
Warning: License for package Android SDK Build-Tools 28.0.3 not accepted.
Checking the license for package Android SDK Platform 26 in /opt/android-sdk-linux/licenses
Warning: License for package Android SDK Platform 26 not accepted.

我不知道为什么当我的sdk位置不在其他位置时,为什么要在那里检查许可证


1
这里似乎有一个疯狂的解决方案,尽管它可能有效!
杰克·李

2
我有同样的问题。我通过Android Studio下载了相关的SDK,它从来没有问过我任何许可。另一个不必要的问题。
史蒂夫·史密斯,

Answers:


267

您需要在构建之前接受许可。

根据Android SDK文档,您可以根据sdkmanager的位置使用以下命令:--licenses似乎缺少Docs on选项。

yes | sdkmanager --licenses

GNU / Linux发行版:

yes | ~/Android/Sdk/tools/bin/sdkmanager --licenses

苹果系统:

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home
yes | ~/Library/Android/sdk/tools/bin/sdkmanager --licenses

视窗:

%ANDROID_HOME%/tools/bin/sdkmanager --licenses

39
我收到此错误Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
HendraWD

5
@HendraWD如果您在计算机上安装了额外的Java(注意:Android Studio具有它自己的Java),则应确保它们具有相同的版本。否则可能会发生此错误。我刚刚通过将“ Android Studio / jre”路径设置为JAVA_HOME来解决了该问题。
利卡特·朱利叶斯

8
对于没有安装Java的Mac上,我只好export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Homecd ~/Library/Android/sdk/tools/bin./sdkmanager --licenses
Graham Perks

1
FWIW:似乎也仅支持JDK <11,而且很有趣的是,Ubuntu 18.04openjdk 11作为默认的jdk附带了。确保使用了受支持的Java版本后,我得到了Error: Could not create the Java Virtual Machine,然后发现必须sdkmanager使用sudo进行调用。
JHH

我必须在ubuntu中使用sudo运行命令,是| sudo〜/ Android / SDK / tools / bin / sdkmanager --licenses
mramsath

50

在Windows OS中,转到您的sdkmanager路径,然后执行

./sdkmanager.bat --licenses

您可以在以下位置找到您的sdkmanager C:\Users\USER\AppData\Local\Android\Sdk\tools\bin

要找到您实际的android SDK路径,请遵循下图的红色标记区域

在此处输入图片说明


1
之后,您可以查看每个许可证并通过同一bash窗口相应地接受它们(Windows CMD会引发错误。请使用git bash或其他替代Windows CMD)
Tharusha


21

Android Studio中,转到工具-> SDK管理器

转到“ SDK工具”标签。

选择Android SDK命令行工具(最新),然后按Apply进行下载。

在此处输入图片说明

Windows上,您可以在以下位置找到sdkmanager.bat

C:\ Users \ [您的用户] \ AppData \ Local \ Android \ Sdk \ cmdline-tools \ latest \ bin

在此处输入图片说明


这帮助了
Sachin K

这解决了我的问题!
douglasrcjames

18

您可以转到SDK管理器(设置> [搜索Android SDK])来接受上述SDK的许可协议,然后找到错误消息中指出的软件包并在此处找到它们。您可能会发现尚未完全安装的SDK,安装它们会要求您接受许可协议。在此处输入图片说明


1
谢谢!它有帮助。
Naseem Ahamed

16

对于Windows,我为platform;android-28错误运行了以下命令

C:\Android\sdk\tools\bin> .\sdkmanager.bat "platforms;android-28"

然后同意许可


1
我使用了。\ sdkmanager.bat --licenses,但并不是新的意思,我必须使用“ \”而不是“ /”,感谢您的澄清。
Hamza

在管理员模式下运行命令提示符,否则将不起作用
Shashank

13

android-28build-toolsat版本一起使用28.0.3;或build-tools版本26.0.3

或尝试以下方法: yes | sudo sdkmanager --licenses


2
在Windows上,您可以运行sdkmanager.bat --licenses并键入y所有问题。
阿贡桑托索

12

MacOS卡塔利娜

步骤1:变更Android Studio偏好设定

  1. 打开您的Android Studio
  2. Command +,或转到左上方的AppBar Android Studio>“偏好设置”
  3. 在左侧窗格中,选择外观>系统设置> Android SDK
  4. 在“ SDK平台”旁边和“ Android SDK位置”下选择“ SDK工具”
  5. 选中标记Android SDK命令行工具(最新),然后按确定按钮。
  6. 等待安装完成

定位Android Studio的首选项

Android Studio偏好设置

第2步(针对Flutter用户):

  1. 转到终端并运行以下命令

flutter doctor --android-licenses

第2步(适用于Android用户):

  1. 转到终端并运行以下命令

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home

yes | ~/Library/Android/sdk/tools/bin/sdkmanager --licenses


谢谢:在Centos 7上非常相似
poleguy

11

这对我有用:

yes | ./sdkmanager "platforms;android-28"

yes | ./sdkmanager "build-tools;28.0.3"

yes | ./sdkmanager --licenses


1
对我来说工作很好(Ubuntu 19.10,IntelliJ 2019.2.4)。我只需要安装openJDK,因为我只有嵌入式JDK,无法从终端访问sudo apt install openjdk-8-jdk
56ka

4

似乎是个错误:https://issuetracker.google.com/issues/123054726

对我有用的解决方案:

在您的项目目录中创建一个.travis.yml文件,然后复制以下行:

before_script:
- mkdir "$ANDROID_HOME/licenses" || true
- echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > "$ANDROID_HOME/licenses/android-sdk-license"

参考:https : //github.com/square/RxIdler/pull/18/files


4

对于Windows用户,您可以在此处接受所有许可条款。将以下内容粘贴到您的终端

C:/Users/USERNAME/AppData/Local/Android/Sdk/tools/bin/sdkmanager.bat --licenses

PS:USERNAME是您的PC用户名


3

这是命令

我使用了以下内容:

  • 设置sdk的路由> AppData \ Local \ Android \ Sdk \ tools \ bin>
  • 运行。\ sdkmanager.bat-许可证

3

您也可以直接通过SDK Manager在Android Studio中安装它:

工具-> SDK Manager- > Sdk平台,您可以在那里直接安装它,并提示您接受许可协议



2

在Windows OS中,转到cmd中的sdkmanager路径目录

您可以在C:\ Users \ USER \ AppData \ Local \ Android \ Sdk \ tools \ bin中找到您的sdkmanager

然后执行followwing命令:

sdkmanager-许可证

之后,它将要求多次接受许可协议,然后只需在cmd上键入y即可接受全部许可


1

我注意到在Windows中,必须以管理员身份打开控制台。否则,它将不会认为您已接受许可证。


1

就我而言,此问题是由于flutter发生的,因为,首先,我已经用默认程序包安装了android studio,然后又安装了flutter。您可以在这里注意到一件事,默认android studio无需接受任何许可证,因此要解决此问题,我们需要手动接受所有许可证。

转到sdk>>tools>>bin文件夹,然后执行以下命令以接受所有许可证。

。\ sdkmanager.bat-许可证


1

在Mac OS 10.15.1上,即使通过运行接受了所有许可证,我也遇到了相同的错误,sdkmanager --licenses它是在将〜/ .bash_profile中的ANDROID_HOME路径配置更新为以下内容后起作用的

export ANDROID_HOME=/Users/your_username/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
export PATH=$PATH:~/Library/Android/sdk/platform-tools

并重新加载〜/ .bash_profile

source ~/.bash_profile 

1

要添加答案,您还可以更改到sdkmanager目录并在子外壳中并在那里接受许可证

(
    cd /home/user/android-sdk-linux/tools/bin
    yes | ./sdkmanager --licenses
)

1

我遇到了一些问题,并且是android studio的新手。如果您最初使用的是react native,而我正在尝试从中提取apk。

我通过转到Android Studio中的SDK管理器并安装了API Level 28解决了该问题。

它为我工作。


1

我刚完成文件->使缓存无效并重新启动,然后安装缺少的软件包。为我工作。



1

MacOs卡塔利娜

只需按照AndroidSDK >> SDK Tools中随附的图片安装工具即可使用。对我来说,“ Google Play许可库”丢失了。

在此处输入图片说明


0

对于Mac,请尝试以下方法,它将起作用:

打开终端并转到以下路径

cd /Users/anand/Library/Android/sdk
Cd tools/bin

然后输入以下命令

yes | ./sdkmanager --licenses && ./sdkmanager --update

以下命令用于在Cordova
Cordova

0

这对我有用:

  1. 开启Android Studio

  2. 打开您的Flutter项目

  3. 在顶部的Android Studio中打开工具。选择SDK管理器,然后在以下位置打勾:
    Android 9.0,
    Android 8.1,
    Android 8.0。
    下载并安装,然后重新启动Android Studio


0

我尝试了许多解决方案,但对我没有用。以下解决方案对我有效。

在android SDK中找到sdkmanager文件。

就我而言:〜/ Android / Sdk / tools / bin

去那条路: cd ~/Android/Sdk/tools/bin

手动接受许可证:./sdkmanager --licenses 输入是或y


添加适当的标题
天鹅

0

在Android Studio上进行了尝试,对我有用:

工具> SDK管理器(请务必选中下面的显示软件包)

SDK平台>显示软件包> Android-28 SDK平台>显示软件包> Android-28

SDK工具>显示软件包> 28.0.3 SDK工具>显示软件包> 28.0.3


0

在Android Studio 4.1(可能适用于较早版本)上,转到SDK Manager(Tools> SDK Manager),然后选择平台(在本例中为Android 8.0(Oreo)API 26)。单击Apply(请参见下面的屏幕截图)

Android SDK菜单屏幕截图

现在,您将接受新SDK的许可证并下载平台。


0

如果您使用的是颤振,请执行以下步骤

1.open the command prompt

然后下面的命令

2.C:\Users\niroshan>flutter doctor

您将看到如下问题

Doctor summary (to see all details, run flutter doctor -v):
[] Flutter (Channel stable, 1.22.2, on Microsoft Windows [Version 10.0.17763.1339], locale en-US)

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    X Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[!] Android Studio (version 4.1.0)
    X Flutter plugin not installed; this adds Flutter specific functionality.
    X Dart plugin not installed; this adds Dart specific functionality.
[] VS Code (version 1.50.1)
[!] Connected device
    ! No devices available

! Doctor found issues in 3 categories.

实际上,您需要运行的是以下命令

C:\Users\niroshan>flutter doctor --android-licenses

-2

如果上述所有方法均无效,则更好的解决方案是:重新安装Android SDK

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.