ChatGPT解决这个技术问题 Extra ChatGPT

自动接受所有 SDK 许可

由于 gradle android 插件 2.2-alpha4

Gradle 将尝试下载项目所依赖的缺失 SDK 包

这非常酷,并且被称为 JakeWharton project

但是,要下载 SDK 库,您需要: 接受许可协议或 gradle 告诉您:

您尚未接受以下 SDK 组件的许可协议:[Android SDK Build-Tools 24, Android SDK Platform 24]。在构建项目之前,您需要接受许可协议并使用 Android Studio SDK 管理器完成缺失组件的安装。或者,要了解如何将许可协议从一个工作站转移到另一个工作站,请访问 http://d.android.com/r/studio-ui/export-licenses.html

这是一个问题,因为我希望在执行 gradle build 时安装所有 sdk 依赖项。

我正在寻找一种自动接受所有许可证的解决方案。也许是一个gradle脚本?你有什么想法 ?

您还可以在该命令前弹出 echo y | 以自动接受许可证。在无头 CI 盒上运行时很有用 :)
我必须执行 ~/.android/tools/android update sdk --no-ui --filter build-tools-25.0.0,android-25,extra-android-m2repository,因为 android 工具已本地化到我家
sdkmanager --licenses 不再有效。我使用了 --upgrade,忽略了错误,这对许可证问题进行了排序。
我已经将此命令用于 CI 环境构建脚本,并进行了小幅调整。我添加了 --sdk_root=$ANDROID_SDK_PATH。问题是许可证被接受并且没有保存到 Android SDK 根文件夹。最终命令:是 | sdkmanager --licenses --sdk_root=$ANDROID_SDK_PATH(不带 sudo)
请务必将 $ANDROID_SDK_PATH 设置为您安装 SDK 的实际根路径(即:/opt/android-sdk),或者直接输入路径(即:yes | sdkmanager --licenses --sdk_root=/opt/android-sdk

6
6 revs, 5 users 26%

UPDATE 2021 This 应该是公认的答案,因为它简单且最新

AndroidSDK 终于可以接受许可了。

前往Android\sdk\tools\bin

yes | sdkmanager --licenses

编辑:

正如@MoOx 在评论中指出的那样,在 macOS 上,您可以这样做

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

正如@pho、@mikebridge 和@Noitidart 在 Windows 上的评论中所指出的,你可以这样做

cmd.exe /C"%ANDROID_HOME%\tools\bin\sdkmanager.bat --licenses"

一定要先安装java


在 Widows 上,我必须先运行然后 C:\Users\x1\AppData\Local\Android\sdk\tools\android,然后它会弹出一个 GUI,然后安装缺少,然后在弹出的新对话框中单击“接受许可”。
这不适用于linux。在 tools/bin 目录或其他地方没有 sdkmanager 文件。你能帮忙吗?
在 macOS 上,您可以执行 yes | sudo ~/Library/Android/sdk/tools/bin/sdkmanager --licenses
如何从 gradle wrapper 自动接受许可证?
为路径投票给@Noitidart,但它不起作用,我必须从命令提示符运行 C:\Users\x1\AppData\Local\Android\sdk\tools\bin\sdkmanager --licenses 并点击“y " + 进入提示
U
Utshaw

我收到了这个错误:

License for package Android SDK Build-Tools 30.0.2 not accepted.

所以,我去了工具-> SDK 管理器-> SDK 工具。然后我安装了 Google Play 许可库。它解决了这个问题。

https://i.stack.imgur.com/hJ5s0.png


恐怕我将不得不不同意@AminPinjari 和 Cedric,这对我来说并没有什么不同。
您不必重新安装所有内容 - 运行 android-sdk/tools/bin/sdkmanager --licenses 就足够了
谢谢,它在 2021 年 8 月 2 日使用 Android Studio Arctic Fox 2020.3.1 在 Windows 上运行
我不明白为什么全新安装 AS 需要这样做,但我很高兴这个答案存在!我刚刚安装了这个,然后做了一个 gradle 同步,一切都很好。
我在使用 Windows PC 时发现并使用了这个解决方案来解决我的问题。我转移到 Mac,发现了同样的问题,同样的解决方案再次解决了我的问题。这是截至 2021 年的最佳答案。
s
sschuberth

我在 alpha5 预览中遇到了这个问题。

Jake Wharton 向我指出,您目前可以使用

mkdir -p "$ANDROID_SDK/licenses"
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"
echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_SDK/licenses/android-sdk-preview-license"

在您的机器上重新创建当前的 $ANDROID_HOME/license 文件夹。这将具有与错误消息 (http://tools.android.com/tech-docs/new-build-system/license) 链接中概述的过程相同的结果。

哈希是许可证文本的 sha1,我想它会定期更新,所以这段代码只能工作这么长时间:)

并手动安装它,但它是 gradle 的新功能目的。

起初我很惊讶,即使我通过 android 工具接受了命名组件的许可证,这也不是开箱即用的,但有人向我指出它是 AS 内的 SDK 管理器创建 {2 } 文件夹。

我猜官方工具出于法律原因不想跳过这一步。

重新阅读它声明的发行说明

SDK 自动下载:Gradle 将尝试下载项目所依赖的缺失 SDK 包。

这并不意味着如果您还没有安装 android 工具并且已经接受了最新的许可证,它就可以工作。

编辑:话虽如此,在我将 SDK 链接到 AS 之前,它仍然无法在我的测试 gubuntu 盒子上运行。 CI 工作正常 - 不知道有什么区别......


sdkDownload 功能中有一些关于某些组件的小故障,例如 support-v4。它更新组件,但 gradle 在下次调用之前不会看到更新。一种解决方法是执行 gradle 两次,一次丢弃:gradle dependencies ||是的 -- code.google.com/p/android/issues/detail?id=212309
您可以使用 mkdir -p 而不是 || true
它的工作原理谢谢你的这个小故障,很高兴知道。检查您的 SDK 路径是否按预期定义:echo $ANDROID_SDK
在我的环境中 ANDROID_SDK 未定义,但它适用于 ANDROID_HOME
@stack_ved:我刚刚添加了另一个 echoecho -e "\nd56f5187479451eabf01fb78af6dfcb131a6481e" >> "${ANDROID_HOME}/licenses/android-sdk-license"。但我认为你的问题隐藏在其他地方。
t
tyler.frankenstein

对于最新的 Android Studio (2.3),更新/接受所有许可证的最佳方法是运行:

cd $ANDROID_HOME
tools/bin/sdkmanager --licenses

您可能仍需要根据您的设置将许可证文件复制到其他位置。


这看起来是最好的方法,它也适用于所有平台,只需运行 tools/bin/sdkmanager --licenses
如果您有旧的 sdk 管理器 --licenses 将不起作用。有必要将工具文件夹复制到另一个位置,然后使用 --sdk_root= 并将其指向您的 sdk 文件夹,然后您就可以将工具更新到较新的版本。
我们能否以某种方式将 yes 输入此命令以用于自动构建系统?您不会始终拥有对这些机器的交互式控制台访问权限,因此物理上按键盘上的 y 将不起作用。
谁能指导我如何实施此解决方案?必须在 build.sh 中添加这一行吗?
它对我有用,但我必须在执行此命令之前执行 cd $ANDROID_HOME
A
A. Rager

对于新的 sdkmanager 实用程序:

yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;24.0.3"

yesses 之间有一点延迟,因此该命令可能会随着许可证显示而挂起一段时间,但它不需要人工干预。


在我安装 debian9 时,我只有一个 sdkmanager.jar:android-sdk-linux/tools/lib/sdkmanager.jar 和 #java -jar /android-sdk-linux/tools/lib/sdkmanager.jar 错误:工具目录属性未设置,请确保您正在执行 android
这是基于您从 Google 下载 SDK 工具作为存档并将它们解压缩到 $ANDROID_HOME 的假设
这似乎是最up-to-date的答案。似乎 --licenses 不再存在。注意:要查看可以提供的可能版本列表:$ANDROID_HOME/tools/bin/sdkmanager --list
感谢您的提示。我最终在我的 CI 中使用了 yes | android-sdk-linux/tools/bin/sdkmanager --licenses || true
es | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;28.0.3" -> 更改对我有用的版本。谢谢 !
r
raven

如果您使用的是 Jenkins,您可以使用以下 bash 脚本作为构建过程的第一步:

(while sleep 3; do echo "y"; done) | $ANDROID_HOME/tools/android update sdk -u

这当然会安装所有可用的更新,但如果您可以腾出磁盘空间,它将为您节省一些时间。 sleep 是为了避免安装程序中的 readline 损坏,因为在这种情况下“yes”不能正常工作。

编辑:如果您使用内置 SDK 管理器,您还需要在构建步骤中添加“安装 Android 项目先决条件”插件以获得正确的 $ANDROID_HOME。


我在运行在 Ubuntu 上的 jenkins 构建中的“cordova 平台添加 android”之前添加了您的代码行,但仍然出现以下错误:BUILD FAILED in 7s Error: /var/lib/jenkins/workspace/qa_global_php/platforms/android/gradlew :命令失败,退出代码 1 错误输出:FAILURE:构建失败并出现异常。 * 出了什么问题:配置根项目“android”时出现问题。 > 您尚未接受以下 SDK 组件的许可协议:
[Android SDK 构建工具 26.0.2]。在构建项目之前,您需要接受许可协议并使用 Android Studio SDK 管理器完成缺失组件的安装。
“睡眠是为了避免安装程序中的readline损坏”<-这是什么意思?
该android工具已弃用
S
Scott Stensland

这解决了我的错误

echo yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;25.0.2"

为了节省几个字符,yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;25.0.2" 做同样的事情。
R
Roc Boronat

我们在 Jenkins 上构建项目时发现了同样的问题。对于 buildToolsVersion '25.0.2',我们必须在构建之前接受许可。在我们的例子中,我们需要运行:

yes | sdkmanager --update 接受 sdkmanager 本身的许可证,然后

yes | sdkmanager --licenses 接受以前未接受的新许可

请记住:使用与 jenkins 相同的用户运行这些命令。在我们的 Debian 中,Jenkins 用户只是 jenkins。换句话说:将其作为 root 执行会将已接受的许可证创建为 root,因此 Jenkins 将无法读取它们。

顺便说一句,我们在 /var/lib/jenkins/tools/android-sdk/tools/bin 找到了 sdkmanager。如果您的不存在,请使用 find / -name "sdkmanager" 找到它


这也解决了我的问题(构建工具 26.0.x),使用 Docker 中的 Jenkins。谢谢!
不幸的是,这不包括问题的“自动”部分。
@m0skit0 感谢您的评论!我已更新问题以与最新版本功能匹配,以自动接受所有许可证而无需人工干预。
@Maruf 安装 Android SDK 并将其添加到路径:·)
C
Community

不幸的是,OP 最初解决它的方式并不总是有效。如果您从错误消息中找到您构建的当前构建工具版本是什么。可能是缺少更高版本的构建工具。在这种情况下,您需要手动启动 SDK Manager 并添加构建工具并接受许可。

根据 OP 指令,它如下所示。

$ ./gradlew build

To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html.

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> You have not accepted the license agreements of the following SDK components:
  [Android SDK Build-Tools 24.0.2].

...
BUILD FAILED

注意:2017-04-16 android 工具现已弃用,取而代之的是新的 sdkmanager。请参阅 Joe Lawson 的回答以及 3 月(2017 年)及以后的后续帖子。

然后调整你的命令如下:

android update sdk --no-ui --filter build-tools-24.0.2,android-24,extra-android-m2repository
Refresh Sources:
  Fetching https://dl.google.com/android/repository/addons_list-2.xml
  Validate XML
  Parse XML
  Fetched Add-ons List successfully
  Refresh Sources
  Fetching URL: https://dl.google.com/android/repository/repository-11.xml
  Validate XML: https://dl.google.com/android/repository/repository-11.xml
  Parse XML:    https://dl.google.com/android/repository/repository-11.xml
...
Error: Ignoring unknown package filter 'build-tools-24.0.2'
-------------------------------
License id: android-sdk-license-xxxxxxxx
Used by: 
 - SDK Platform Android 7.0, API 24, revision 2
  - Android Support Repository, revision 39
-------------------------------

...

November 20, 2015
Do you accept the license 'android-sdk-license-xxxxxxxx' [y/n]: y

Installing Archives:
  Preparing to install archives
  Downloading SDK Platform Android 7.0, API 24, revision 2
  Installing SDK Platform Android 7.0, API 24, revision 2
    Installed SDK Platform Android 7.0, API 24, revision 296%)
  Downloading Android Support Repository, revision 39
  Installing Android Support Repository, revision 39
    Installed Android Support Repository, revision 3999%)
  Done. 2 packages installed.

再次运行这个,仍然没有让 Gradle 高兴。因此,在有人想出更好的方法之前,手动接受是唯一的解决方案。 (请做!)


android update sdk --no-ui --filter build-tools-24.0.2,android-24,extra-android-m2repository 通过具有管理员权限的命令提示符运行此修复了错误。我无法安装 phonegap plugin manager
J
Joe Lawson

android 工具已弃用,您应该改用 sdkmanagersdkmanager 还会在您第一次接受许可文件时写入它。许可证会根据您使用的 SDK 更改,即使命令

echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"

适用于某些系统。它不会对所有都有效。一些 SDK 安装希望许可文件在文件中没有换行符的情况下结束,因此请尝试在 echo 命令中添加 -n

echo -n -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"

如果这不起作用,您可以尝试使用 base64 编码。

所以要发现我的许可证:

$> rm ${ANDROID_HOME}/
$> unzip tools_r25.2.3-linux.zip -d ${ANDROID_HOME}
$> ${ANDROID_HOME}/tools/bin/sdkmanager "system-images;android-23;default;x86_64"

它会提示您接受许可证。接受后会将其复制到 ${ANDROID_HOME}/licenses/android-sdk-license。为确保您始终准确了解所写内容,请使用 base64

$> base64 ${ANDROID_HOME}/licenses/android-sdk-license
Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU=

然后您可以使用 base64 -d 重新创建文件。

$> echo Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU= | base64 -d > ${ANDROID_HOME}/licenses/android-sdk-license

您可以通过在其上运行 sha1sum 来验证写入的文件是否是预期的。

$> sha1sum ${ANDROID_HOME}/licenses/android-sdk-license
da6b80c9c47b41c0bf7032938e7137a58a3dc249

R
Ryan R

如果您运行 yes | sdkmanager --licenses,那么我们打印 $ANDROID_HOME/licenses/android-sdk-license 的内容,

我们会得到这个

# cat $ANDROID_HOME/licenses/android-sdk-license

8933bad161af4178b1185d1a37fbf41ea5269c55

d56f5187479451eabf01fb78af6dfcb131a6481e

对于 GitLab CI,要接受 Android SDK Build-Tools 26.0.2 许可证,您需要运行此

before_script:
  - mkdir -p $ANDROID_HOME/licenses
  - echo "8933bad161af4178b1185d1a37fbf41ea5269c55" > $ANDROID_HOME/licenses/android-sdk-license
  - echo "d56f5187479451eabf01fb78af6dfcb131a6481e" >> $ANDROID_HOME/licenses/android-sdk-license

您的第二个回声将指向相同的 $ANDROID_HOME/licenses/android-sdk-license,这是有意的吗? IE。附加
@RyanR,是的,第二个回声正在附加,Android SDK Build-Tools 26.02 添加了一个新的许可证 sha1 字符串
我正在使用 bitbucket 管道,但这个概念似乎与 GitLab CI 相同。您的回答帮助我更好地理解了整个过程。谢谢!
@Ridcully 我也在使用 Bitbucket Pipelines,当我们升级到 Build-Tools 26.0.2 并且我们的构建中断时发现自己在这里。我的最终解决方案是简单地执行 yes | sdkmanager --licenses。不需要echo,这是未来的证明。
@Ryan你的意思是我可以添加'是| sdkmanager --licenses' 到 pipeline.yml?那很好啊!
J
JosephH

请注意,对于目前提出此问题的任何人,build-tools-24.0.2(我认为)现在被认为已过时,因此您将获得:

 Error: Ignoring unknown package filter 'build-tools-24.0.2'

在运行建议安装它们的各种命令时。

解决方案是添加 --all

android update sdk --no-ui --all --filter "build-tools-24.0.2"

此外,如果您使用的是 32 位 linux,everything after build tools 23.0.1 is 64bit only,因此不会运行。 32 位用户卡在 23.0.1 上,获得更高版本工具的唯一方法是切换到 64 位。


是的,构建工具刚刚碰到 25.0.1
您的解决方案是我唯一能在无头 ubuntu 16 机器上为 build-tools-25 和 gradle 4 工作的解决方案
T
Thibaut Mottet

如果您使用 tools/bin/sdkmanager --licenses,您仍然需要进行人工交互。我在使用 gitlab CI 时遇到问题。这是我的解决方案:

wget --quiet --output-document=tools.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
unzip -qq tools.zip
echo y | tools/bin/sdkmanager "platforms;android-25"
echo y | tools/bin/sdkmanager "platform-tools"
echo y | tools/bin/sdkmanager "build-tools;25.0.2"
echo y | tools/bin/sdkmanager "extras;android;m2repository"
echo y | tools/bin/sdkmanager "extras;google;m2repository"

如果有任何问题,echo y 会说是,但您需要为每个安装包设置一行


几个月后仍然相当重要。谢谢你。你拯救了我的一天:)
这对我很有帮助,也使用 GitLab
0
0xCursor

您也可以只执行:

$ANDROID_HOME/tools/bin/sdkmanager --licenses

在 Windows 中,执行:

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

P
Papershine

好的,对于截至 2018 年有此问题的任何人。以上答案对我根本不起作用。所做的工作是打开 Android SDK - 单击工具栏上的 DOWNLOAD 按钮并选择适当的包。他们完成下载后,它将让您接受许可协议。

https://i.stack.imgur.com/yvMlc.png


D
David Corral

在 Android Studio for Windows 中,解决方法如下:

转到 File -> Settings -> Appearance & Behaviour -> System Settings -> Android SDK -> SDK Tools ->检查 Google Play Licensing Library ->点击 Apply,然后点击 Ok

安装后,构建您的应用程序。它会起作用的。


有效!欢迎来到社区:-)
o
ofir_aghai

有关 SDK api 编号 25 的错误消息:

android update sdk --no-ui --all --filter build-tools-25.0.1,android-25,extra-android-m2repository


J
Jayprakash Dubey

注意:这仅适用于 Mac 用户

我有同样的问题,但发布的答案都没有帮助,因为 Library/Android/sdk. 中没有 tools 文件夹(我在 Mac OS 10.14.4 上使用 Android 3.6.3)

https://i.stack.imgur.com/rfTzT.jpg

以下步骤帮助我克服了许可问题错误:

打开 Android Studio 按 cmd + shift + A。这将打开 Actions 弹出窗口。搜索 SDK Manager 并按 Enter 键打开。这将打开 Android SDK 的弹出窗口。除了已安装的 Android 版本之外,请选择其他版本的 Android。 (在我的情况下,Android 10.0 已经安装,所以我选择了 Android 9.0)然后选择应用按钮。这将安装相应的 SDK。

https://i.stack.imgur.com/R1AdP.jpg

现在运行您的应用程序,它应该可以正常工作。

https://i.stack.imgur.com/bC89y.png


I
IgorGanapolsky

我通过使用已接受的许可证文件创建公共 git 存储库来解决此问题。然后在运行 ./gradlew 以构建我的项目之前,我使用 wget 在我需要的任何机器上将这些许可证获取到 [sdk-dir]/licenses 目录中。


不幸的是,您的解决方案没有告诉我如何解决问题。您能分享一下您是如何获得“许可证文件”的吗?
@FrederickNord 许可证是从您计算机上的 $ANDROID_HOME/sdk/licenses 获得的。
m
m4n0

我去了工具-> SDK 管理器-> SDK 工具。然后我安装了 Google Play 许可库。它解决了这个问题。


对于 MacOS,这有效
而对于蒙特雷来说,接受的答案似乎不起作用,所以这个是必需的!
s
sksamuel

对于那些对命令行 SDK 有问题的人,它找不到您接受的许可证的原因是因为它们已被写入与 $ANDROID_HOME/licenses 不同的位置,而 $ANDROID_HOME/licenses 正是它们需要的位置。

我发现最简单的解决方案是接受这样的许可证:

$ANDROID_HOME/bin/sdkmanager --licenses --sdk_root=$ANDROID_HOME

注意:这假设您已将 ANDROID_HOME 设置为指向您的 sdk 的安装位置。


J
Jimmy KD

cd $ANDROID_HOME/tools/bin yes | ./sdkmanager --update

或者

yes | $ANDROID_HOME/tools/bin/sdkmanager --update


“自动地”
D
Deepak Kumrawat

对于 windows,打开 cmd 并通过运行命令进入 bin 目录:

cd C:\Users\username\AppData\Local\Android\sdk\tools\android\Sdk\tools\bin

然后运行 sdkmanager --licenses 命令,它要求接受许可证。


谢谢这是我做的
我得到Error: Unknown argument --licenses
m
moobyfr

我终于在 Windows 上找到了一个解决方案,可以进行真正的静默自动安装:

在 Windows 上,以下语法不起作用:

echo y | sdkmanager --licenses

似乎“y”没有正确发送到批处理中调用的java程序。

解决方法是创建一个文件file-y.txt,其中有几个“y”,一行一行,并使用

call sdkmanager --licenses < file-y.txt

这将在 licenses 目录中创建所需的文件。该问题可能与Java中使用BufferedReader有关


A
Aymen Boumaiza

我在 Windows 10 机器上尝试了上述所有命令,但解决方案是使用 SDKMANAGER 检查并接受许可证购买安装缺少的版本

https://i.stack.imgur.com/X0l2Y.jpg


没有一个 CMD 命令对我有用,只有这个解决方案。谢谢
K
Kevin Patel

在 Android Studio 上构建项目时,我遇到了两个错误:

不接受软件包 Android SDK Platform 28 的许可。 (在 Android Studio 4.1 中构建我的项目时)线程主 java.lang.noclassdeffounderror javax/xml/bind/annotation/xmlschema 中的异常(在运行 SDK 管理器以接受许可时)

对我来说,这是一个 java 版本问题。我已经安装了 JDK 而不是 java。为了解决这个问题,我做了以下步骤。

对于 Windows:

第 1 步:从 https://www.java.com/en/download/ 下载并安装最新的 JAVA 版本

Step2:在开始菜单按钮(windows图标)中搜索“查看高级系统设置”

第三步:点击“环境变量”

Step4:在“系统变量”下点击“新建”,现在设置“Variable name: JAVA_HOME”和“Variable value: C:\Program Files\Java\jre1.8.0_271”(在此处添加最新安装的 java 路径)。然后是“OK”、“OK”和“OK”。

Step5:以管理员身份打开cmd,输入以下命令:

cd C:\Users\kevin\AppData\Local\Android\Sdk\tools\bin (*在此处更改用户名) sdkmanager --licenses

按“y”回答所有问题。

第六步:再次重启你的 Android Studio。

完毕。

如果有人在执行上述步骤时遇到问题,请告诉我。


s
surya

复制整个 licenses/ 目录并将其粘贴到您希望构建项目的机器上的 Android SDK 主目录中。

https://developer.android.com/studio/intro/update.html#download-with-gradle

这为我解决了这个问题


M
Mark Johnson

在 Windows PowerShell 中,您可以执行

for($i=0;$i -lt 30;$i++) { $response += "y`n"}; $response | sdkmanager --licenses

这更加灵活,并且需要零人工干预。 30 是任意的,应该足以覆盖许可接受的数量,但如果需要可以增加


A
A.L

我在使用 Cordova 时遇到了同样的错误。

问题是由于我通过 Android Studio 和通过 aptapt install android-sdk adb 安装了 Android Sdk。 Cordova 调用的是通过 apt 安装的文件,而不是我的主目录中的文件。

一旦我在 bash 中更改了 SDK 的路径,它就起作用了:

# Change path
export ANDROID_HOME="$HOME/Android/Sdk/"
echo "Android home = $ANDROID_HOME"
# Accept licenses
eval "${ANDROID_HOME}/tools/bin/sdkmanager --licenses"
# Run Cordova
cordova build android

然后我删除了不再使用的系统文件:apt remove android-sdk adb


M
Manoj Shrestha

您可以通过执行以下命令来接受所有许可证:

 sdkmanager --licenses

这将提示您完成尚未接受的每个许可证,您只需输入 y 即可接受每个许可证。


“自动地”