因为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脚本?
你有什么想法吗?
我解决了这个问题,因为我不能使用UI。它用于Azure中的管道。(Windows)没有一个答案对我有用,但是@ mobyfr发的file-y.t xtxt给我指明了正确的方向
这适用于新安装。你根本不需要使用Android Studio或任何UI。
Create C:\AndroidTest
Create ENV variable called ANDROID_SDK_TOOLS with path from #1
Create ENV variable called JAVA_HOME and give it the folder path
open up CMD in Admin mode and go to C:\Android
curl --output test.zip https://dl.google.com/android/repository/commandlinetools-win-8092744_latest.zip
Use your favorite command line to extract the zip into the same folder
Navigate to the bin folder ( cmdline-tools\bin )
In this folder, create a file like mentions in another answer. file-y.txt and add a bunch of y's. Basically type y on each line. I did 20. So you have 20 lines with 1 y on each
sdkmanager "platform-tools" "platforms;android-29" --sdk_root="C:\AndroidTest\cmdline-tools\bin" < file-y.txt
这将下载所有你需要的sdk,而不需要gradle/AndroidStudio/Xamarin。对于管道来说,动态下载整个SDK支持非常棒
如果你有问题,你需要输入sdkmanager——licenses——sdk_root="C:\AndroidTest\cmdline-tools\bin" < file-y.txt
但是,我对此表示怀疑。
我终于在Windows上找到了一个解决方案,有一个真正的静音和自动安装:
在Windows上,以下语法不起作用:
echo y | sdkmanager --licenses
似乎“y”没有正确地发送到批处理中调用的java程序。
解决方法是创建一个文件file-y.txt,其中包含几个“y”,一行一行,然后使用
call sdkmanager --licenses < file-y.txt
这将在许可证目录中创建所需的文件。这个问题可能与Java中BufferedReader的使用有关