Android Studio 2021.1.1的getNdkVersion的Bug及解决办法

2022-02-11 08:15:35 浏览数 (1)

前言

前两天刚打开Android Studio后收到新版本的推送2021.1.1,毫不犹豫就点了升级安装,正常的应用项目用了用没什么问题,结果在加载含用Ndk的项目中,发现编译不过去了,于是就写一篇当时遇到的这个问题及最后解决的办法。

问题出现

ModelCache.safeGet(androidProjectResult.androidProject::getNdkVersion, "") must not be null

解决过程

新版本升级后,项目中重新编译偶尔会出来一些需要修改适配的地方,时间长了也都有基本的经验了,一看这个问题描述,很简单嘛,就是找不到NDK的版本,那我们重新设置一下即可。

01

项目中配置NDK路径 X

在FIle中打开Project Structure

在SDK Location中设置NDK路径

结果这里路径输入框,路径选择按钮及download的NDK都是无法选择状态,怀疑是Android Studio 2021.1.1的Bug。此处无法设置,那我们就换方法实现。

02

local.properties设置NDK路径

打开了local.propertie文件,可以看到里面只有sdk.dir,那我们在这里加上ndk的路径。

重新再编译运行,结果还是报ModelCache.safeGet(androidProjectResult.androidProject::getNdkVersion, "") must not be null

如果这时再打开Project -- Project Structures可以看到NDK的路径已经加载进去了,但是还是报错。

重点说明

第一天在这里加入ndk.dir后项目可以直接sync过了,正常了,结果第二天的时候重新sync后还是提示的上面那个错误。所以再看看其它办法

03

修改build.gradle配置

既然这样解决不了问题,估计升级过用NDK的用户的肯定也有遇到这个问题的,所以网上找找看有没有同病相怜的朋友。

于是在stackoverflow上也看到了相同的问题,里面就有一个解决方案

接下来我们就直接在build.gradle的android中加入

代码语言:javascript复制
android {
    ndkPath "D:/PersonalStudio/android-sdk-windows/ndk/21.4.7075529"
}

重新Sync后还是报错

说是ndkPath和ndk.dir中同时设置了,已经重复了,即然设置ndk.dir没用,那我们把那个再删了重新Sync成功了。

说明

这里的处理方式和上面一样,也是当时成功后,过后又出现找不到ndk版本了,挺无语。

04

在Project Structure中设置NDK版本

上面两个方法突然都不好用好,那再看看自己研究下有什么方法,然后重新打开Project Structure后,找到Modules,里面有一个NDK Version,在这里选择我们的NDK版本。

重新Sync后,这次编译过了。

总结一下临时解决办法

01

在local.properties中加入ndk.dir设置

02

在build.gradle的android下面加入ndkPath设置

03

在Project Structure--Modules--NDK Version中进行设置

上述三个设置中,设置其中一个,另外两个都要去掉,总有一个可以保存Sync成功。也希望官方尽快修复这个问题。

0 人点赞