Open OakChen opened 3 years ago
Gradle 5.1.1 + AGP 3.4.1的NDK搜索方式有点问题,导致NDK路径找不到,自动下载最新的NDK。
报错大致为: java.lang.NullPointerException
internal.ndk.NdkHandler.getPlatformVersion
实际原因是自动下载的NDK版本过高,找不到platforms目录。
参考: AGP 3.4.x的配置方式: https://developer.android.com/studio/projects/configure-agp-ndk?language=agp3-4#agp-version`
解决办法:
增加前置脚本,兼容AGP3.4.1,该版本只能通过local.properties找到NDK路径(Android Studio原理相同) echo "ndk.dir = ${NDK_HOME}/android-ndk-r16b" >> local.properties。根据实际情况配置对应的NDK版本。
升级Gradle到5.4.1,AGP3.5.2,该版本的AGP可以通过build.gradle的ndkVersion找到NDK路径,不需要额外的配置。
参考: AGP 3.5+才支持ndkVersion配置 https://developer.android.com/studio/projects/configure-agp-ndk?language=agp3-5#agp-version
AGP与Gradle的对应关系: https://developer.android.com/studio/releases/gradle-plugin?hl=zh-cn#updating-gradle
在本地研发也是相同的,如果直接拉代码仓库,不通过IDE打开,而直接通过命令行执行./gradlew进行项目Configuration时,也会遇到这个错误。
IDE之所以打开没有问题,是IDE做的魔术,会将IDE配置写到local.properties中。`
@ZSmallX Gradle 5.1.1 + AGP 3.4.1的NDK搜索方式有点问题,导致NDK路径找不到,自动下载最新的NDK。
报错大致为: java.lang.NullPointerException
internal.ndk.NdkHandler.getPlatformVersion
实际原因是自动下载的NDK版本过高,找不到platforms目录。
参考: AGP 3.4.x的配置方式: https://developer.android.com/studio/projects/configure-agp-ndk?language=agp3-4#agp-version`
解决办法:
增加前置脚本,兼容AGP3.4.1,该版本只能通过local.properties找到NDK路径(Android Studio原理相同) echo "ndk.dir = ${NDK_HOME}/android-ndk-r16b" >> local.properties。根据实际情况配置对应的NDK版本。
升级Gradle到5.4.1,AGP3.5.2,该版本的AGP可以通过build.gradle的ndkVersion找到NDK路径,不需要额外的配置。
参考: AGP 3.5+才支持ndkVersion配置 https://developer.android.com/studio/projects/configure-agp-ndk?language=agp3-5#agp-version
AGP与Gradle的对应关系: https://developer.android.com/studio/releases/gradle-plugin?hl=zh-cn#updating-gradle
在本地研发也是相同的,如果直接拉代码仓库,不通过IDE打开,而直接通过命令行执行./gradlew进行项目Configuration时,也会遇到这个错误。
IDE之所以打开没有问题,是IDE做的魔术,会将IDE配置写到local.properties中。`
感谢分享
https://oakchen.gitee.io/2021/04/06/AS-Issues-and-Solution/
BSP|Kernel|Linux驱动|Ubuntu|Docker|Android