“由于部分许可证未被接受,无法安装以下Android SDK包”;错误

我在jitpack中得到这个错误,我已经在互联网上尝试了一切。以下是我的错误

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位置是其他

460529 次浏览

在版本28.0.3中使用android-28build-tools;或build-tools在版本26.0.3

或者试试这个:yes | sudo sdkmanager --licenses

目前看来是一个bug: https://issuetracker.google.com/issues/123054726 < / p >

对我有效的解决方案:

创建一个.travis。Yml文件在你的项目目录,并复制这些行:

before_script:
- mkdir "$ANDROID_HOME/licenses" || true
- echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > "$ANDROID_HOME/licenses/android-sdk-license"
< p >参考: https://github.com/square/RxIdler/pull/18/files < / p >

你需要在建造之前接受许可证。

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

yes | sdkmanager --licenses

GNU / Linux发行版:

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


macOS:

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

颤振:

> flutter config --android-sdk 'path-of-android-sdk'(only for ubuntu user)
> flutter doctor --android-licenses

这对我来说很管用:

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

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

yes | ./sdkmanager --licenses

在Windows操作系统中,进入您的sdkmanager路径,然后执行

./sdkmanager.bat --licenses

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

对于那些没有在windows操作系统上使用android studio的人。转到cmdline-tools\tool\bin,在目录框上键入cmd,在终端上打开该目录。然后运行sdkmanager——许可证

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

enter image description here

如果您正在使用Flutter,那么这个命令绝对适合您。

flutter doctor --android-licenses

在Mac OS 10.15.1上,即使在通过运行sdkmanager --licenses接受所有许可证后,我也得到了相同的错误。Bash_profile到下面

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

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

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

我刚刚完成文件->无效缓存和重新启动 然后安装缺少的包。

您可以通过进入SDK管理器(设置>[搜索Android SDK]),然后找到错误消息中指出的包,并在那里找到它们,从而接受上述SDK的许可协议。很有可能,您会发现没有完全安装的sdk,并且在安装它们时会要求您接受许可协议。enter image description here

MacOS卡特琳娜

步骤1:改变Android Studio偏好

  1. 打开你的Android Studio
  2. 命令+,或进入左上角的AppBar Android Studio >首选项
  3. 从左窗格,选择>系统设置> Android SDK
  4. SDK平台旁边和Android SDK下面选择SDK工具
  5. 选中Android SDK命令行工具(最新)并按好吧按钮。
  6. 等待安装完成

定位Android Studio的首选项

Android Studio Preferences

步骤2(适用于颤振用户):

  1. 进入“终端”,执行如下命令

flutter doctor --android-licenses

第二步(Android用户):

  1. 进入“终端”,执行如下命令

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

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

Android工作室中转到工具-> SDK管理器

进入SDK工具选项卡。

选择Android SDK命令行工具(最新)并按应用下载。

enter image description here

窗户上,你可以找到sdkmanager.bat

C:\Users\ [your_user] \ AppData \当地\ Android最新\ Sdk \ cmdline-tools \ \ bin

enter image description here

我试了很多办法,但都不奏效。

在android SDK中找到sdkmanager文件。

在我的例子中: ~ / Android / Sdk /工具/ bin < / p >

cd ~/Android/Sdk/tools/bin这个路径

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

在Windows操作系统中,在cmd中进入sdkmanager路径目录

你可以在C:\Users\USER\AppData\Local\Android\Sdk\tools\bin目录下找到你的sdk管理器

然后执行如下命令:

sdkmanager——许可证

之后,它将要求接受许可协议几次,然后通过在cmd上键入y来接受所有许可协议

我在Android Studio上尝试了这个方法,结果很管用:

工具比;SDK管理器(确保检查下面的显示包)

SDK平台>展示包装及gt;Android - 28 SDK平台>展示包装及gt;Android - 28 < / p >

SDK Tools >展示包装及gt;28.0.3 SDK Tools >展示包装及gt;28.0.3 < / p >

如果您正在使用颤振,请执行以下步骤

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

在Windows上:

  1. 添加USER环境变量:

注意:Path需要追加

JAVA_HOME           %ProgramFiles%\Android\Android Studio\jre
ANDROID_SDK_ROOT    %LocalAppData%\Android\Sdk
Path                %LocalAppData%\Android\Sdk
  1. 执行以下命令接受license:

注意:接受所有许可(例如y)

%ANDROID_SDK_ROOT%/tools/bin/sdkmanager.bat --licenses
  1. 现在运行你的应用程序:

(就像下面,或其他命令,你失败了):

cd \myapp\
react-native run-android

在我的情况下,更新buildToolsVersion在应用程序级别构建。Gradle工作得很完美。如果你不知道使用哪个,你可以创建一个新的项目,并复制buildToolsVersion到现有的一个。

在我的情况下,我只是在一台新的笔记本电脑上安装了一个新版的android studio,并克隆了旧的存储库 buildToolsVersion "30.0.2"在应用程序级build.gradle。 我刚刚升级到30.0.3,其中推荐Android工作室自己,问题消失了

如果您在使用Flutter时出现此错误,请在命令提示符上运行以下命令。

flutter doctor --android-licenses

如果运行上述命令后出现以下错误

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)

然后请执行以下步骤

  1. 开放android工作室
  2. 进入SDK管理器
  3. 单击SDK工具选项卡
  4. 安装Android SDK命令行工具
  5. 再次运行flutter doctor --android-licenses

这对我来说在Windows 10中是有效的:

C:
cd \Users\YOUR_USER\AppData\Local\Android\Sdk\cmdline-tools\latest\bin
sdkmanager.bat --licenses

之后,对所有人都是

https://www.youtube.com/watch?v=g789PvvW4qo真的帮助了我。所做的是打开SDK管理器和下载任何新的SDK平台(别担心,它不会影响你想要的api级别)。

因为下载任何SDK平台(API级别),你都应该接受许可。这招对我很管用。

在Android Studio中转到:工具比;SDK管理器>SDK工具

在右下角,查看“Show Package details”;下载你需要的SDK版本:

Android Studio Sdk Tools

问题:SDK许可证不接受

enter image description here

第一步:打开SDK管理器

打开SDK管理器后,打开SDK工具选项卡,如下所示

enter image description here

步骤2:检查选项Show Package Details

它会列出SDK工具的所有版本

enter image description here

步骤3:安装所需SDK工具版本

从列表中查看正在抱怨的SDK工具的特定版本(对我来说,它是29.0.3,如上面的第一个截图所示),在接下来打开的对话框中接受协议,然后就完成了。

当我试图在我的android设备上运行一个应用程序时,在一个不同的项目中,我使用一些旧版本的tomcat8,必须设置JAVA_OPTS变量和值,我遇到了同样的问题。因此我删除了JAVA_OPTS的这个系统变量,它的variable值设置为-Xms1024m(删除JAVA_OPTS系统变量,但是如果您需要恢复到使用可能需要它的旧项目,您也可以存储它以供将来使用)。

然后在SDK路径下运行SDK管理器bat文件: p C: \ [your_pc_username] \ AppData \用户本地Android \ \ Sdk工具\ \ bin>。\ sdkmanager.bat——许可< / p >

接受所有许可(Y)。

如何解决这个问题(AndroidStudio 4.2)

  • 单击Build选项卡
  • 选择Failed to install the following Android SDK packages ...(警告)
  • 单击安装丢失的SDK包

一个降级到java 8的线性解决方案:

sudo apt-get install openjdk-8-jdk -y && export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 && flutter doctor --android-licenses

对于Android Studio Arctic Fox,我通过安装谷歌播放授权库

  1. 转到首选项
  2. 扩大Appearance & Behavior
  3. 然后展开System Settings
  4. 选择Android SDK,进入SDK Tools选项卡
  5. 安装谷歌播放授权库

enter image description here

Ubuntu上,它仍然不能使用建议的答案。

这对我来说很管用:

cd full-path-to-bin文件夹,其中sdkmanager所在。

yes | ./sdkmanager --licenses --sdk_root="full-path-to-bin"

在选项--help中,它表明我们可以将公共参数传递给它,它最终接受所有许可:

Usage:
...
sdkmanager --licenses [<common args>]
...
Common Arguments:
--sdk_root=<sdkRootPath>: Use the specified SDK root instead of the SDK containing this tool

我移动了我的Sdks和Avds文件夹,因为它在本地磁盘c中使用了大量的内存,但在那之后我得到了上面的问题。

对我来说,无效缓存/重新启动解决问题

文件→缓存失效/重新启动

只是访问构建。gradle Appname.app(模块) 在这里,找到“buildToolsVersion"并将版本改为“32.0.0"