因为gradle android插件2.2-alpha4:

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

这非常酷,是杰克·沃顿的一个项目。

但是,要下载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构建时安装所有的sdk依赖。

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


当前回答

对于反应本机应用程序:

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

sdk.dir=/PATH_TO_SDK/

其他回答

在Windows PowerShell中,你可以这样做

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

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

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

Update sdk tools with command window by accepting licence agreement as follows, just change the version according to your need. android update sdk --no-ui --filter build-tools-25.0.2,android-25,extra-android-m2repository Second approach is copying licence folders to Android root directory. Goto your development machine open Android Studio. Find your sdk location from Project Structure menu. (C:\Users\UserName\AppData\Local\Android\sdk). Under that directory there must be a licence folder. Copy that folder with the content. Paste that folder in your Jenkins server machine (or where you face with this problem) under android sdk root folder. (C:\Users\UserName.jenkins\tools\android-sdk)

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

在环境变量中定义一个新变量 ANDROID_SDK_ROOT作为名称,并为其赋值 Sdktools位于。: C: \ Android sdk \ \ 编辑路径,将创建的变量添加为 %ANDROID_SDK_ROOT%\tools\bin重新启动cmd。 运行答案中提到的命令: sdkmanager——许可证 使用sdkmanager "packageName"安装所需的软件包。

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

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

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

flutter doctor --android-licenses 

并接受所有需要的许可。