自动接受所有SDK许可证

因为gradle android插件2.2 -alpha4:

Gradle将尝试下载项目中缺失的SDK包 取决于< / p >

这非常酷,被称为JakeWharton项目

但是,要下载SDK库,你需要:接受许可协议,否则gradle会告诉你:

您没有接受以下SDK的许可协议 组件:[Android SDK Build-Tools 24, Android SDK Platform 24]。 在构建项目之前,您需要接受许可证 协议并完成缺少组件的安装 使用Android Studio SDK管理器。或者,学习如何 将许可证协议从一个工作站转移到另一个工作站,转到 # EYZ0 < / p >

这是一个问题,因为我想安装所有的sdk依赖,同时做gradle build

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

599255 次浏览

我在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文件夹。这将产生与错误msg (http://tools.android.com/tech-docs/new-build-system/license)链接中概述的过程相同的结果。

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

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

一开始我很惊讶,这并没有开箱即用,即使我已经通过android工具接受了命名组件的许可证,但它向我指出,它的SDK管理器在AS中创建了/licenses文件夹。

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

重读发布说明

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

这并不意味着它将工作,如果你还没有安装android工具,并已经接受了最新的许可证(s)。

编辑:话虽如此,在我将SDK链接到AS之前,它仍然不能在我的测试gubuntu盒子上工作。不过CI工作得很好-不知道有什么不同…

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

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

< p > <代码> $ ./gradlew构建 < /代码> < / p >
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。请参阅乔·劳森的回答和2017年3月及以后的后续帖子。

调整命令如下:

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开心。所以手动验收是唯一的解决方案,直到有人想出更好的方法。(请做!)

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

请注意,对于任何现在来问这个问题的人来说,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上,一切 在构建工具之后,23.0.1只支持64位,所以不会运行。32位用户被困在23.0.1上,获得后续构建工具的唯一方法是切换到64位。

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

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

当然,这将安装所有可用的更新,但如果您可以腾出磁盘空间,这将节省一些时间。休眠是为了避免在安装程序中出现断行,因为"yes"在这种情况下不能正常工作。

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

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

# EYZ0

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

对于新的sdkmanager实用程序:

# EYZ0

在“是”和“是”之间有一点延迟,因此命令可以挂起,许可证显示一段时间,但它不需要人工干预。

我可以找到两种方法来解决这个问题。

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

    Android更新SDK——no-ui——filter build-tools-25.0.2, Android -25,extra-android-m2repository

  2. 第二种方法是将许可证文件夹复制到Android根目录。打开你的开发机器,打开Android Studio。从项目结构菜单中找到您的sdk位置。用户(C: \ \用户名\ AppData \本地Android \ \ sdk)。在该目录下必须有一个许可证文件夹。复制该文件夹的内容。将该文件夹粘贴到你的Jenkins服务器机器(或你面临这个问题的地方)下的android sdk根文件夹。用户(C: \ \ UserName.jenkins \ \ android sdk工具)

我们在詹金斯身上也发现了同样的问题。对于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"找到它

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

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

这为我解决了问题

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

cd $ANDROID_HOME
tools/bin/sdkmanager --licenses

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

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

最后,这两个简单的步骤在windows 10上为我工作了。

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

2)启动你的Android Studio,你会被提示为已经更新的api和工具安装所需的构建工具,这将安装构建工具的属性,包括许可证和你的完成。

在Windows PowerShell中,你可以这样做

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

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

我跑

#react-native run-android

from terminal并且遇到了这个问题。 手动操作请进入“Android Studio -> Android SDK -> SDK平台” 单击Show Packages Detail并检查:

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

安装包时,check accept license =>可以解决此问题。

我浏览到:

/usr/lib/android-sdk/licenses

然后我输入terminal:

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

具有root权限。

这解决了我的错误

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

<强> 2021年更新 应该是被接受的答案,因为它简单且最新


AndroidSDK终于可以接受许可了。

转到Android\sdk\tools\bin

yes | sdkmanager --licenses

编辑:

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

# EYZ0

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

# EYZ0

请务必在此之前安装Java

如果你运行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
< p > <代码> cd $ ANDROID_HOME /工具/ bin 是| ./sdkmanager——update

./

# EYZ0

我在使用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

对于反应本机应用程序:

如果你的React Native应用有这个问题,除了上面提到的步骤,确保你有本地。在你的应用程序的android目录(AppName/android)中指向你的“sdk”目录的properties文件:

sdk.dir=/PATH_TO_SDK/

使用实例接受所有license。

 sdkmanager --licenses

这将提示您通过尚未接受的每个许可,您可以输入y来接受每个许可。

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

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

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

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

echo y | sdkmanager --licenses

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

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

call sdkmanager --licenses < file-y.txt

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

好的任何人有这个问题作为2018年。上面的答案对我来说根本不管用。真正起作用的是打开Android SDK——点击工具栏上的下载按钮,然后选择合适的软件包。在他们完成下载后,它会让你接受许可协议。

enter image description here

你也可以执行:

$ANDROID_HOME/tools/bin/sdkmanager --licenses

在Windows中,执行:

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

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

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

# EYZ0

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

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

enter image description here

我得到了同样的错误,许可证不接受…尝试设置android环境,在API级别23的android模拟器中运行react原生应用程序。

我做了以下事情:

基于链接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)

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

在尝试了社区成员提到的许多可能的解决方案后,我发现随着时间的推移可能会有不同的问题,所以大多数解决方案都过时了。

目前,作为我在Travis社区发布了, Travis应该默认接受所有的许可证,但它一直抱怨不接受27.0.3许可证,这是不应该发生的。

添加:

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

如果能解决这个问题,我们甚至可以用a3。+版本的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日。特拉维斯可能会在未来做出改变,所以祝你好运!

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

我花了半天时间寻找Bitbucket都管道的解决方案

如果你正在使用Bitbucket都管道并且你有接受所有SDK许可证的问题,试着在你的.yml文件中使用以下代码:

image: mingc/android-build-box:latest


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

它应该会起作用。

这是我的Docker设置。< br > 您可以从普通的Linux环境中进行操作 注意yes |--licenses --sdk_root=${ANDROID_HOME}子句。< br > 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

现在已经很晚了,但上面提到的所有解决方案都对我不起作用,最终这一行将接受所有android许可证。

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

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

这是一个快速修复; 1. 去C:\Users(你的用户名)\AppData\Local\Android\sdk\build-tools 2. 删除无license版本的已有文件夹。 3.转到ANDROID STUDIO并再次手动安装工具(这将给你一个接受许可的机会) …… (解决问题)< / p >

对于windows,打开cmd,进入bin目录:

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

然后执行sdkmanager --licenses命令,它会请求接受许可。

对于2019年7月,最简单的方法是在命令提示符中使用:flutter doctor --android-licenses

它继续逐个显示未接受的sdk的T&C,并给你选择“y/n”的选项。全部选择y。

或者,当你运行flutter doctor时,它将运行Android工具链诊断,显示有多少许可证尚未被接受,并建议你使用——Android -licenses标志运行它。

我所要做的就是yes | sdkmanager --licenses > /dev/null,一切都被接受了,在控制台或travis日志或其他地方没有巨大的输出。它也可以像yes | sdkmanager "tools" > /dev/null这样工作。

在windows下,进入命令提示符,输入以下命令:

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

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

我有这个问题,我认为这些答案没有帮助,然后我发现我的环境变量是不正确的,尽管我能够在任何地方执行sdkmanager命令,所以请确保环境变量设置正确:

  1. 在环境变量中定义一个新变量with ANDROID_SDK_ROOT作为名称,并为其赋值 Sdktools位于。李:# EYZ0 < / p > < / >

  2. 编辑路径,将创建的变量添加为

  3. . %ANDROID_SDK_ROOT%\tools\bin\重新启动cmd
  4. 执行如下命令: 李# EYZ0 < / p > < / >

  5. 使用sdkmanager "packageName"安装所需的包。

该路径在最近的版本中已被更改。 ./sdkmanager现在在/Library/Android/sdk/cmdline-tools/latest/bin,然后只需执行

./sdkmanager --licenses

如果MacOS上没有“tools”文件夹,那么您可以执行以下操作-

  1. 在Android Studio中使用command+shift+A打开动作(快捷方式可能不同)
  2. 搜索“SDK管理器”
  3. 进入“SDK工具”
  4. 选中Android SDK Platform Tools并单击应用。

现在应该出现工具文件夹。

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

注意:这仅适用于Mac用户

我有同样的问题,但贴出来的答案没有一个有用,因为Library/Android/sdk.中没有tools文件夹(我在Mac OS 10.14.4上使用Android 3.6.3)

error截图

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

  1. 打开# EYZ0
  2. 按# EYZ0。这将打开Actions弹出窗口。
  3. 搜索SDK Manager并按enter打开。
  4. 这将为Android SDK打开弹出窗口。选择其他Android版本,除了已经安装的版本。(在我的情况下,Android 10.0已经安装,所以我选择了Android 9.0)
  5. 然后选择Apply按钮。这将安装相应的SDK。

Solution

  1. 现在运行你的应用应该毫无例外地工作。

success截图

如果您正在使用颤振,只需运行:

flutter doctor --android-licenses

并接受所有需要的许可。

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

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

事实证明,如果你没有安装任何SDK, Android Studio也会显示“你没有接受许可”……这样的欺骗信息,一般人会认为这意味着SDK已经安装,但无论如何。在Studio的SDK管理器中,你可以手动选择缺失的SDK进行下载和安装,它也会处理许可。你只需要重新启动Android Studio。

这里是YT视频显示SDK管理器的位置。

Windows中

: 打开Cmd: < / p >

进入安装路径

< p > falow常见: cd D: or C:

进入SDK目录

乳糜泻常见

工具/ bin / sdkmanager——许可证

WINDOWS的解决方案

  • 打开终端o Windows电源外壳

  • 进入Android SDK文件夹

通常这个文件夹可以在C:\Users(your-windows-user)\AppData\Local\Android\Sdk\tools\bin

  • 开始在"....\Sdk"文件夹进入到\tools\bin

最后是路径C: \用户(your-windows-user)当地\ AppData \ \ Android \ Sdk \ \ bin的工具

  • 使用< >强ls < / >强命令验证sdkmanager.bat是否在位置

  • 执行下一个命令。\ sdkmanager.bat——许可证

  • 然后终端将显示7个文件,你需要在每个文件中输入yes

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

  1. < p > # EYZ0

  2. < p > # EYZ0

对我来说,这是java版本的问题。我安装了JDK而不是java。解决问题,我执行以下步骤。

Windows:

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

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

步骤3:点击“环境变量”;

第四:在“系统变量”下;点击“新建”,现在设置“Variable name: JAVA_HOME"和“# EYZ1"(在这里添加最新安装的Java路径)。那么&;OK", &;OK", &;OK"

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

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

  2. < p > # EYZ0

按“y"回答所有问题。

第六段:重新启动Android Studio。

完成了。

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

我得到这个错误:

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

所以,我去了工具>SDK管理器->SDK工具。然后我安装了谷歌播放授权库。这就解决了问题。

enter image description here

在Windows上,安装并配置了sdkmanagerWSL,下面的一行程序应该适用于每个默认发行版(事实上我想不出一个反例):

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

如果这还不够,您可能想看看这个脚本(免责声明:它是我的)。

您尚未接受以下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平台24,然后将出现许可协议,接受协议,问题将得到解决!

在窗口中,这个问题可以解决为: 在窗口中打开CMD 在CMD

下执行此命令

flutter doctor -android-licenses 然后输入y表示接受每个许可证。 CMD将逐一显示您必须在CMD提示符中输入y来接受的每个许可证。 它解决了我的问题。我希望这也适用于你

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

是| sudo ~/Library/Android/sdk/tools/bin/sdkmanager——license .

我去了Tools >SDK管理器->SDK工具。然后我安装了谷歌播放授权库。这就解决了问题。

android sdk manager选项卡中卸载许可失败的包。 在重新安装时,将提示您接受许可证

android SDK manager

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

点击File -># EYZ1→# EYZ2→# EYZ3→# EYZ4→# EYZ5→检查Google Play Licensing Library ->点击Apply,然后是Ok

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

我解决了这个问题,因为我不能使用UI。它用于Azure中的管道。(Windows)没有一个答案对我有用,但是@ mobyfr发的file-y.t xtxt给我指明了正确的方向

这适用于新安装。你根本不需要使用Android Studio或任何UI。

  1. 创建C: \ AndroidTest
  2. 创建名为ANDROID_SDK_TOOLS的ENV变量,路径为#1
  3. 创建名为JAVA_HOME的ENV变量,并为其提供文件夹路径
  4. 在管理模式下打开CMD,进入C:\Android
  5. curl——输出test.zip https://dl.google.com/android/repository/commandlinetools-win-8092744_latest.zip
  6. 使用您喜欢的命令行将压缩文件解压到相同的文件夹中
  7. 导航到bin文件夹(cmdline-tools\bin)
  8. 在这个文件夹中,创建一个在另一个答案中提到的文件。file-y。txt然后加一堆y。基本上每一行都输入y。我做了20个。你有20条直线,每条直线上都有一个y
  9. sdkmanager“platform-tools"“平台;android-29"——sdk_root =“C: \ AndroidTest \ cmdline-tools \ bin"& lt;file-y.txt

这将下载所有你需要的sdk,而不需要gradle/AndroidStudio/Xamarin。对于管道来说,动态下载整个SDK支持非常棒

如果你有一个问题,你需要输入sdkmanager——licenses——sdk_root="C:\AndroidTest\cmdline-tools\bin"& lt;file-y.txt

我成功地接受了该命令的许可

sdkmanager --sdk_root=$ANDROID_HOME --licenses

但是,许可证没有保存在任何地方。我将多次运行上述命令以接受除一直在找他们之外的所有许可证。所以解决方案是简单地添加sudo到命令…

sudo sdkmanager --sdk_root=$ANDROID_HOME --licenses

$ANDROID_HOME/licenses下成功生成多个license文件