android - 由于 jenkins 触发的 aws 实例上未接受某些许可证,因此无法安装以下 Android SDK 包
问题描述
我正在为一个 android 应用程序设置一个新的 Jenkins 版本来运行测试。我已经在 AWS 实例上下载了 android 工具。然后运行以下命令来安装额外的包来安装平台和构建工具。
./android update sdk --no-ui --filter build-tools-28.0.3,android-28,extra-android-m2repository./android update sdk --no-ui --filter build-tools-28.0.3,android-28,extra-android-m2repository
这下载了正确的平台和构建工具。
要构建我运行的应用程序gradlew :app:assembleDebug
,我遇到了以下错误
配置项目 ':app' 时出现问题。
未能安装以下 Android SDK 软件包,因为某些许可证尚未被接受。构建工具;28.0.3 Android SDK 构建工具 28.0.3
我尝试使用以下命令通过 sdkmanager 更新许可证 -
是的 |./sdkmanager --licenses && ./sdkmanager --update
和
./sdkmanager "build-tools;28.0.3"
然后我遇到了所有 SDK 包许可证都接受了。但是,当我尝试再次构建时,我得到了
未能安装以下 Android SDK 软件包,因为某些许可证尚未被接受。构建工具;28.0.3 Android SDK 构建工具 28.0.3
我还使用 chmod 777 更改了文件夹结构的权限
解决方案
当我构建和 apk 时,我不需要每次都接受许可证,只需在我的 Jenkins 配置之前接受一次。
我通过以下步骤做到了:
- 转到您的 $ANDROID_HOME/tools/bin
- 执行:
./sdkmanager --licenses
没有“是|”
这将要求您接受或拒绝许可证。您必须接受所有许可。
下次运行构建命令时,许可证不会有问题。
查看此链接以获取 Android 自动构建的完整指南:
https://jrichardsz.github.io/android/how-configure-android-tools-for-automated-builds
推荐阅读
- java - 在不使用上下文的情况下加载自定义字体
- python - 即使使用 .strip、.replace 和一切可能摆脱它们的文件,在保存到文件时也会不断添加空格
- android - 如何在 Room 中附加数据库?
- wordpress - Woocommerce 没有列出所有订单,为什么?
- arm - 如何在列表模式下配置我的 CAN 过滤器?
- pipe - pipe()、fork() 和 for 循环
- ios - 上传成功后在 iTunes 连接中看不到我的新版本
- azure-storage - 如何使用 NiFi 从/向 ADLS 摄取数据
- php - Laravel - 如何递归地将 API 资源转换为数组?
- r - 如何根据上一行中的值进行分组?