自动接受所有SDK许可证

时间:2016-06-29 09:56:42

标签: android gradle sdk android-gradle android-sdk-tools

自gradle android插件2.2-alpha4

  

Gradle将尝试下载项目缺失的SDK包   取决于

这真是太酷了,被认为是JakeWharton project

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

  

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

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

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

谢谢!

[编辑]

解决方案是执行:

android update sdk --no-ui --filter build-tools-24.0.0,android-24,extra-android-m2repository

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

[编辑2]

更好的解决方案是使用sdkmananger:

yes | sdkmanager --licenses

58 个答案:

答案 0 :(得分:248)

AndroidSDK最终可以接受许可。

yes | sdkmanager --licenses

编辑:

正如@MoOx的评论所指出的,在macOS上,你可以做到

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

答案 1 :(得分:169)

我在alpha5预览中遇到过此问题。

杰克沃顿向我指出,你现在可以使用

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管理器这将创建/licenses文件夹。

我想官方工具不会出于法律原因而不想跳过此步骤。

重读它所说的发行说明

  

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

如果您还没有安装Android工具并且已经接受了最新的许可证,那么这并不意味着它会起作用。

编辑:说,在我将SDK链接到AS之前,它仍然无法在我的测试gubuntu盒子上运行。 CI工作正常 - 不确定区别是什么......

答案 2 :(得分:123)

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

tools/bin/sdkmanager --licenses

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

答案 3 :(得分:63)

我收到此错误:

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

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

enter image description here

答案 4 :(得分:53)

对于新的sdkmanager实用程序:

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

在yes之间有一点延迟,因此该命令可能会暂停许可证显示一段时间,但它并不需要人为干预。

答案 5 :(得分:40)

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

+:src/Project.Web/*.config => arch.zip
-:src/Project.Web/*.debug.config => arch.zip

这当然会安装所有可用的更新,但如果您可以节省磁盘空间,它将节省您一些时间。睡眠是为了避免安装程序中的读取线损坏,因为在这种情况下“是”无法正常工作。

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

答案 6 :(得分:29)

不幸的是OP最初解决它的方式并不总是有效。 如果您从错误消息中找到了当前 build-tools 版本 的构建版本。它可能是缺少更高版本的构建工具。在这种情况下,您需要手动启动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的answer以及随后的三月(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高兴。因此,手动接受是唯一的解决方案,直到有人提出更好的方法。 (请做!)

答案 7 :(得分:28)

这解决了我的错误

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

答案 8 :(得分:28)

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

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

接受以前未接受的新许可的

yes | sdkmanager --licenses

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

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

找到它

答案 9 :(得分:20)

不推荐使用android工具,您应该使用sdkmanager。第一次接受许可证文件时,sdkmanager也会写入许可证文件。许可证会根据您使用的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

答案 10 :(得分:19)

如果您运行remove(l) print l [1, 4, 2, 5] ,那么我们会打印yes | sdkmanager --licenses

的内容

我们会得到这个

$ANDROID_HOME/licenses/android-sdk-license

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

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

8933bad161af4178b1185d1a37fbf41ea5269c55

d56f5187479451eabf01fb78af6dfcb131a6481e

答案 11 :(得分:15)

请注意,对于目前来到这个问题的任何人来说,build-tools-24.0.2(我认为)现在已经过时了,所以你会得到:

tf.trainable_variables()

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

解决方案是添加 Error: Ignoring unknown package filter 'build-tools-24.0.2'

--all

此外,如果您使用32位Linux,所有 after build tools 23.0.1 is 64bit only,那么将无法运行。 32位用户坚持使用23.0.1,获得更高版本工具的唯一方法是切换到64位。

答案 12 :(得分:13)

如果您使用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会说是,但你需要为每个安装包制作一行

答案 13 :(得分:11)

你也可以执行:

$ANDROID_HOME/tools/bin/sdkmanager --licenses

在Windows中,执行:

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

答案 14 :(得分:10)

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

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

答案 15 :(得分:9)

对于2018年以前的任何人都可以。上述答案对我来说根本不起作用。 DID的工作是打开Android SDK - 单击工具栏上的DOWNLOAD按钮并选择相应的包。下载完成后,它将允许您接受许可协议。

enter image description here

答案 16 :(得分:6)

注意:这仅适用于Mac用户

我遇到了同样的问题,但是发布的答案均无济于事,因为tools中没有Library/Android/sdk.文件夹(我在Mac OS上使用的是Android 3.6.3 10.14.4)

error screenshot

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

  1. 打开Android Studio
  2. cmd + shift + A。这将打开Actions弹出窗口。
  3. 搜索SDK Manager,然后按Enter键以打开。
  4. 这将打开Android SDK的弹出窗口。除了已安装的版本外,选择其他版本的Android。 (就我而言,已经安装了Android 10.0,因此我选择了Android 9.0)
  5. 然后选择Apply按钮。这将安装相应的SDK。

Solution

  1. 现在运行您的应用,它应该没有任何异常。

success screenshot

答案 17 :(得分:6)

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

答案 18 :(得分:6)

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

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

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

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

答案 19 :(得分:4)

对于Windows,请打开cmd并通过运行以下命令进入bin目录:

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

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

答案 20 :(得分:4)

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

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

答案 21 :(得分:4)

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

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

echo y | sdkmanager --licenses

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

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

call sdkmanager --licenses < file-y.txt

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

有关

答案 22 :(得分:3)

如果您使用的是 Flutter ,请运行:

flutter doctor --android-licenses 

并接受所有需要的许可证。

答案 23 :(得分:3)

这是我的Docker设置。
您可以在普通的Linux环境中进行操作。

请注意,yes |--licenses --sdk_root=${ANDROID_HOME}子句。
似乎sdkmanager --update恢复了协议,因此yes |出现了两次。

FROM openjdk:8
# Install dev-essential(gnumake)
RUN apt update
RUN apt install -y build-essential
# Set ENV
ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip" \
    ANDROID_HOME="/usr/local/android-sdk" \
    ANDROID_VERSION=28 \
    ANDROID_BUILD_TOOLS_VERSION=28.0.3 \
    GRADLE_VERSION=4.10.3 \
    NDK_VERSION=r16b
# Download Android SDK
RUN mkdir "$ANDROID_HOME" .android \
    && cd "$ANDROID_HOME" \
    && curl -o sdk.zip $SDK_URL \
    && unzip sdk.zip \
    && rm sdk.zip \
    && yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses --sdk_root=${ANDROID_HOME}
# Install Android Build Tool and Libraries
RUN $ANDROID_HOME/tools/bin/sdkmanager --update
RUN yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \
    "platforms;android-${ANDROID_VERSION}" \
    "platform-tools" --sdk_root=${ANDROID_HOME}
# Install Gradle
RUN wget https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
RUN mkdir /opt/gradle
RUN unzip gradle-${GRADLE_VERSION}-all.zip -d /opt/gradle
ENV PATH=${PATH}:/opt/gradle/gradle-${GRADLE_VERSION}/bin
# Install NDK
RUN wget https://dl.google.com/android/repository/android-ndk-${NDK_VERSION}-linux-x86_64.zip
RUN mkdir /opt/ndk-bundle
RUN unzip android-ndk-${NDK_VERSION}-linux-x86_64.zip -d /opt/ndk-bundle
ENV PATH=${PATH}:/opt/ndk-bundle

RUN mkdir /application
WORKDIR /application

答案 24 :(得分:3)

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

问题是由于我通过Android Studio安装了Android Sdk,而apt安装了apt install android-sdk adb。 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

答案 25 :(得分:3)

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

 sdkmanager --licenses

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

答案 26 :(得分:3)

复制整个许可证/目录并将其粘贴到您希望构建项目的计算机上的Android SDK主目录中。

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

这解决了我的问题

答案 27 :(得分:2)

此路径在最新版本中已更改。 ./sdkmanager现在位于/Library/Android/sdk/cmdline-tools/latest/bin中,然后只需

./sdkmanager --licenses

答案 28 :(得分:2)

在Windows PowerShell中,您可以执行

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

这更加灵活,无需人工干预。 30号是任意的,应足以涵盖许可证接受的数量,但如果需要可以增加

答案 29 :(得分:1)

在Mac OSX上,导航至sdk/tools/bin

然后运行./sdkmanager --licenses,并接受所有许可。

答案 30 :(得分:1)

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

  1. 不接受软件包Android SDK Platform 28的许可证。 (在Android Studio 4.1中构建项目时)

  2. 线程主java.lang.noclassdeffounderror javax / xml / bind / annotation / xmlschema中的异常(正在运行SDK管理器以接受许可证)

对我来说,这是一个Java版本的问题。我已经安装了JDK而不是Java。 要解决该问题,我执行了以下步骤。

对于Windows:

步骤1 :从https://www.java.com/en/download/

下载并安装最新的JAVA版本

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

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

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

第5步:以管理员身份打开cmd并键入以下命令:

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

  2. sdkmanager --licenses

对所有问题按“ y”。

第6步:再次重新启动Android Studio。

完成。

让我知道在执行上述步骤时是否有问题。

答案 31 :(得分:1)

在 Windows 上,在您的 PATH 和 WSL 中安装和配置 sdkmanager 后,以下单行代码应该适用于每个默认发行版(实际上我想不出反例):< /p>

wsl --exec yes "y" | sdkmanager --licenses

如果这还不够,您可能需要查看 this script(免责声明:这是我的)。

答案 32 :(得分:1)

我跑

#react-native run-android 
从终端

遇到了这个问题。 对于手动,请转到Android Studio - &gt; Android SDK - &gt; SDK平台 单击“显示包详细信息”并选中:

+ Google APIs
+ Android SDK Platform 23
+ Intel x86 Atom_64 System Image
+ Google APIs Intel x86 Atom_64 System Image

安装软件包时,请检查accept license =&gt;可以解决问题。

答案 33 :(得分:1)

2019年7月开始,最简单的方法是在命令提示符下使用flutter doctor --android-licenses

它将继续逐个显示SDK的不接受条款和条件,您可以选择“ y / n”。为所有选择y。

或者,当您运行flutter doctor时,它将运行Android工具链诊断,该诊断将显示尚未接受的许可证数量,并建议您使用--android-licenses标志运行它。

答案 34 :(得分:1)

在Windows中,转到命令提示符并键入以下命令:

cd C:\Users\<Username>\AppData\Local\Android\Sdk\tools\bin
sdkmanager --licenses

这将生成许可证,并持续按“ y”以接受所有许可证。

答案 35 :(得分:1)

如果MacOS上缺少“工具”文件夹,则可以执行以下操作-

  1. 使用Command + Shift + A在Android Studio中打开操作(快捷方式可能有所不同)
  2. 搜索“ SDK管理器”
  3. 转到“ SDK工具”
  4. 选中Android SDK Platform Tools,然后单击“应用”。

现在应显示工具文件夹。

答案 36 :(得分:0)

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

enter image description here

答案 37 :(得分:0)

WINDOWS解决方案

  • 打开终端或Windows Power Shell

  • 转到Android SDK文件夹

通常可以在 C:\ Users(您的Windows用户)\ AppData \ Local \ Android \ Sdk \ tools \ bin

中找到此文件夹>
  • 从“ .... \ Sdk”文件夹开始,输入\ tools \ bin

最终路径 C:\ Users(您的Windows用户)\ AppData \ Local \ Android \ Sdk \ tools \ bin

  • 使用 ls 命令

    验证sdkmanager.bat是否在位置上
  • 执行下一个命令。\ sdkmanager.bat --licenses

  • 然后终端将显示7个文档,您需要在每个文档中放入yes

答案 38 :(得分:0)

在Windows中

: 打开命令:

开始安装路径

常见故障: cd D:或C:

转到sdk目录

带有cd common

tools / bin / sdkmanager --licenses

答案 39 :(得分:0)

结果是,如果您没有安装任何SDK,Android Studio还会显示“您不接受许可证” ...这种欺骗性消息,普通人会认为它暗示已经安装了SDK,但是无论如何。在Studio的SDK管理器中,您可以手动选择缺少的sdk进行下载和安装,它也可以处理许可证。您只需要重新启动Android Studio。

这里a YT video显示您的SDK管理器所在的位置。

答案 40 :(得分:0)

从此link下载SDK管理器。然后解压缩并在终端中使用以下命令。

!tools/bin/sdkmanager --sdk_root=/usr/lib/android-sdk --licenses <<< $'y\ny\ny\ny\ny\ny\ny\n'

答案 41 :(得分:0)

<块引用>

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

卸载重装Android SDK Platform 24,出现License协议,接受协议,问题解决!

答案 42 :(得分:0)

请注意您的sdk位置,我更改了默认文件夹,因此我无法在“〜/ Library / Android / sdk / tools / bin /” ...中找到sdkmanager。

答案 43 :(得分:0)

在窗口中这个问题可以解决为: 在窗口中打开 CMD 在 CMD 中运行此命令

<块引用>

颤动医生 --android-licenses 然后输入 y 以接受每个许可证。 CMD 将一一向您显示每个许可证,您必须在 CMD 提示符下输入 y 来接受这些许可证。 它解决了我的问题。我希望这对你也有用

答案 44 :(得分:0)

我遇到了这个问题,尽管这些答案无济于事,但是我发现我的环境变量不正确,尽管我可以在任何地方执行sdkmanager命令,所以请确保环境变量设置正确:

  1. 在环境变量中,使用 ANDROID_SDK_ROOT作为名称,并为其指定 sdktools位于例如:C:\Android\sdk\

  2. 编辑路径以将创建的变量添加为 %ANDROID_SDK_ROOT%\tools\bin\重新启动您的cmd。

  3. 运行答案中提到的命令: sdkmanager --licenses

  4. 使用sdkmanager "packageName"安装所需的软件包。

答案 45 :(得分:0)

我要做的只是yes | sdkmanager --licenses > /dev/null,一切都被接受了,在控制台或travis日志上或任何地方都没有巨大的输出。例如,它也像yes | sdkmanager "tools" > /dev/null一样工作。

答案 46 :(得分:0)

我有类似的问题,我通过打开Android Studio来解决了。事实是未安装Android Build Tools 26.0.2。一个错误警告我,我安装了它并与项目同步。问题解决了:)

答案 47 :(得分:0)

已经很晚了,但是上述所有解决方案都不适用于我,最后这一行将接受所有android许可。

yes | sdkmanager --licenses && sdkmanager --update

答案 48 :(得分:0)

我花了半天的时间为 Bitbucket管道

寻找解决方案

如果您使用的是 Bitbucket管道,并且在接受所有SDK许可时遇到问题,请尝试在您的.yml文件中使用以下代码:

image: mingc/android-build-box:latest

pipelines:
  default:
  - step:
      script:
        - chmod +x gradlew
        - ./gradlew assemble

应该可以。

答案 49 :(得分:0)

在Windows 10上,以管理员权限打开cmd,然后依次输入cd C:\Program Files (x86)\Android\android-sdk\tools\bin\sdkmanager --update对我有用。之后,我只需要按两次“ y”即可接受许可证。

答案 50 :(得分:0)

尝试了社区成员提到的许多可能的解决方案后,我发现加班可能存在不同的问题,因此大多数解决方案都已过时。

当前,并且作为I posted in the Travis community,Travis应该默认接受所有许可证,但是它一直抱怨不接受不应该发生的许可证27.0.3。

添加:

before_install:
  - yes | sdkmanager "build-tools;27.0.3"

应该解决该问题,我们甚至可以使用3. +版本的Android Gradle Tools,而无需声明我们使用的是哪个版本的构建工具:

android:
  components:
    # Use the latest revision of Android SDK Tools
    - tools
    - platform-tools
    - tools

    # The SDK version used to compile your project
    - android-${ANDROID_API}
    # - build-tools-28.0.3    # WE DONT NEED THIS ANYMORE FROM AGP 3.+

    # Additional components
    - extra-google-google_play_services
    - extra-google-m2repository
    - addon-google_apis-google-${ANDROID_API}

日期为2018年10月29日。Travis可能会在将来做出一些改变,祝你好运!

答案 51 :(得分:0)

我得到同样的错误许可证不被接受...试图设置android环境在Android模拟器中为API级别23运行React-native应用程序。

我做了以下事情:

基于链接https://developer.android.com/studio/intro/update#download-with-gradle

验证是否通过Android Studio 3.1.3的SDK管理器下载了许可证。

将ANDROID_HOME设置为C:\\ Android \ Sdk

(它安装在C:\ Users \ username \ AppData \ Local \ Android \ Sdk)

在新命令提示符下重试构建后,错误得到了解决。

答案 52 :(得分:0)

FOR REACT NATIVE APPs:

如果你有一个React Native应用程序的问题,除了上面提到的步骤,请确保你的应用程序的android目录(AppName / android)中有local.properties文件指向你的&#39 ; SDK&#39;目录:

sdk.dir=/PATH_TO_SDK/

答案 53 :(得分:0)

我导航到:

/usr/lib/android-sdk/licenses

我输入了终端:

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

使用root权限。 它现在对我有用。

答案 54 :(得分:-1)

最后,这两个简单的步骤适用于Windows 10。

1)确保更新你的android构建工具和api。在您的Android Sdk上只需单击安装包即可安装可用的更新。

2)启动Android Studio,系统会提示您为已更新的api和工具安装重新构建的构建工具。这将安装构建工具属性,包括许可证和已完成的内容。

答案 55 :(得分:-1)

我可以找到两种解决此问题的方法。

  1. 通过接受许可协议更新带有命令窗口的sdk工具,如下所示,只需根据需要更改版本。

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

  2. 第二种方法是将许可证文件夹复制到Android根目录。转到您的开发机器打开Android Studio。从“项目结构”菜单中找到您的sdk位置。 (C:\ Users \用户名\应用程序数据\本地\的Android \ SDK)。在该目录下必须有许可证文件夹。使用内容复制该文件夹。在android sdk根文件夹下将该文件夹粘贴到Jenkins服务器计算机中(或者您遇到此问题的位置)。 (C:\ Users \用户UserName.jenkins \工具\ Android的SDK)

答案 56 :(得分:-1)

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

是的 |须藤 ~/Library/Android/sdk/tools/bin/sdkmanager --licenses

答案 57 :(得分:-2)

这是一个快速修复;  1.转到C:\ Users(您的用户名)\ AppData \ Local \ Android \ sdk \ build-tools  2.删除没有许可的版本的先前文件夹。  3.转到ANDROID STUDIO并手动重新安装工具(这将使您有机会接受许可) ........ (问题已解决)