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

学更好的别人,

做更好的自己。

——《微卡智享》

8e31dee46703879c1321a37b5b167787.png

本文长度为1698,预计阅读5分钟

前言

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

b3bad8c6bf4de60d73d7835a04f95038.png

问题出现

22283263d3199fb33f42a79d597b70ae.png

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

解决过程

2d21fc44c95a5548b7b7837022ac1418.png

微卡智享

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

01

项目中配置NDK路径      X 

7f30ed5ffe6ee09e1433bf4ec933785d.png

在FIle中打开Project Structure

c14111a7aeef8dbc5d4ae19988dde597.png

在SDK Location中设置NDK路径

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

02

local.properties设置NDK路径

807908c3490649b609bfa2f1876c9f5c.png

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

53c91b4f177c0ad9e64516175843240d.png

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

ec8fe210bea9869fac6a8a64db7a4e8a.png

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

重点说明

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

03

修改build.gradle配置   

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

ffe1a4041057c9617f8af31bca47772e.png

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

7bdbfda3299b17d2392d925fc6e60e37.png

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

android {
    ndkPath "D:/PersonalStudio/android-sdk-windows/ndk/21.4.7075529"
}

42350b4603e020dbf0633e684b73f81d.png

重新Sync后还是报错

5b37d221f0424e1677e05c1600515b9f.png

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

说明

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

04

在Project Structure中设置NDK版本

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

c80a30aa7c596570940bd0204eac9f09.png

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

总结一下临时解决办法

01

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

02

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

03

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

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

51e6244b18a9c595dd26d4b3bc493449.png

d4e8fd3e25227fe1210c9969b8ca100c.png

往期精彩回顾

5b4e73a4cc9f6a7350ee194138809b5d.png

笔记--解决Android使用retrofit2 OkHttp3短时间内大量通讯提示Socket Failed:EMFILE


1212f6541a903966bd753109a0283da7.png

笔记---Linux安装OpenCV及VSCode的配置编译


081afa9e8c2fa441acb34b5fbaa0bedf.png

AI自动还原OpenCV制作的九宫格拼图游戏(附源码)


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vaccae

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值