OakChen / oakchen.github.io

Oak Chen's personal blog
https://www.sfysoft.com
0 stars 0 forks source link

404 Not Found:该页无法显示 | sfysoft #49

Open OakChen opened 3 years ago

OakChen commented 3 years ago

https://oakchen.gitee.io/2021/04/06/AS-Issues-and-Solution/

BSP|Kernel|Linux驱动|Ubuntu|Docker|Android

ZSmallX commented 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`

解决办法:

  1. 增加前置脚本,兼容AGP3.4.1,该版本只能通过local.properties找到NDK路径(Android Studio原理相同) echo "ndk.dir = ${NDK_HOME}/android-ndk-r16b" >> local.properties。根据实际情况配置对应的NDK版本。

  2. 升级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中。`

OakChen commented 3 years ago

@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`

解决办法:

  1. 增加前置脚本,兼容AGP3.4.1,该版本只能通过local.properties找到NDK路径(Android Studio原理相同) echo "ndk.dir = ${NDK_HOME}/android-ndk-r16b" >> local.properties。根据实际情况配置对应的NDK版本。

  2. 升级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中。`

感谢分享