我需要通过命令行从linux机器构建一个apk,所以通过gradle wrapper。
该项目已将 NDK 和 CMAKE 配置为使用本机库。目前对于目标 29,一切正常。它具有以下配置:
- NDK 21.3.6528147
- CMAKE 3.10.2
- 源兼容性 VERSION_1_8。
- 构建工具版本“29.0.3”
- 编译SdkVersion,targetSdkVersion 29
- com.android.tools.build:gradle:3.6.4'
- 梯度包装器
distributionUrl=https\://services.gradle.org/distributions/gradle-6.2-all.zip
- JDK 8 安装在 linux 机器上
- SDK工具(命令行工具)sdk-tools-linux-3859397.zip
- Robolectric 'org.robolectric:robolectric:4.3.1'
来自 gradle.build ,当然我需要 compileSdkVersion
30
- 我需要
buildToolsVersion
设置为 30.0.2 吗? - 我需要特定的 gradle 包装器版本吗?例如,如果我需要将工具从 29.0.3 设置为 30.0.2,我是否需要将 gradle 包装器更新到 7.1.1,例如?
- 我需要更新到 com.android.tools.build:gradle:7.0.2'
- 如果我不需要 Java VERSION_11,我是否需要进行任何相关更改?
- 机器上安装的JDK有什么作用吗?我需要更新到 JDK 11 吗?
- 我需要最新的 SDK 工具吗,例如 commandlinetools-linux-6609375_latest.zip
- Robolectric ......真是一场噩梦......我认为它不适用于 Java 11......
我已经尝试了各种东西,甚至将所有内容更新到最新版本。没有任何效果,组合变得无穷无尽,谷歌也不清楚。
例如更新包装器需要更新NDK,然后NDK 需要更新cmake。sdk manager 3.10以上版本不附带cmake,您需要手动更新cmake,cmake安装不附带ninja,而从sdkmanager安装也安装ninja,您需要安装ninja并将其与cmake结合使用ndk等...
所以我们只是在寻找对外围设备、目标 API 30 的最小更改,仅此而已。