Android Studio 升级 3.6 之后,sync 原本正常的 Module 时提示 NDK 问题:
NDK not configured. Download it with SDK manager. Preferred NDK version is ‘20.0.5594570’. Log: /Users/shawn.xiafei/Workspace/AndroidStudio/Marmot/iCtrl/.cxx/ndk_locator_record.json
上面的报错信息中指出了log文件,其内容如下:
{
"messages": [
{
"level": "INFO",
"message": "android.ndkVersion from module build.gradle is not set"
},
{
"level": "INFO",
"message": "ndk.dir in local.properties is not set"
},
{
"level": "INFO",
"message": "ANDROID_NDK_HOME environment variable is not set"
},
{
"level": "INFO",
"message": "sdkFolder is /Users/shawn.xiafei/Library/Android/sdk"
},
{
"level": "INFO",
"message": "Because no explicit NDK was requested, the default version \u002720.0.5594570\u0027 for this Android Gradle Plugin will be used"
},
{
"level": "INFO",
"message": "Considering /Users/shawn.xiafei/Library/Android/sdk/ndk-bundle in SDK ndk-bundle folder"
},
{
"level": "INFO",
"message": "Considering /Users/shawn.xiafei/Library/Android/sdk/ndk/21.0.6113669 in SDK ndk folder"
},
{
"level": "INFO",
"message": "Rejected /Users/shawn.xiafei/Library/Android/sdk/ndk/21.0.6113669 in SDK ndk folder because that NDK had version 21.0.6113669 which didn\u0027t match the requested version 20.0.5594570"
},
{
"level": "INFO",
"message": "Rejected /Users/shawn.xiafei/Library/Android/sdk/ndk-bundle in SDK ndk-bundle folder because that NDK had version 20.1.5948944 which didn\u0027t match the requested version 20.0.5594570"
},
{
"level": "ERROR",
"message": "No version of NDK matched the requested version 20.0.5594570. Versions available locally: 20.1.5948944, 21.0.6113669"
}
]
}
解决方法:
根据上面 log 信息的第一条,在 Module 的 build.gradle 中加入如下 NDK 版本定义:
android{
compileSdkVersion 28
buildToolsVersion "29.0.2"
// 加入下面这行代码。
// 参数是SDK Manager 里面 看到的NDK版本号,也可以在 sdk/ndk/ 下面找。
ndkVersion "21.0.6113669"
}
加入 ndkVersion 之后再次 sync,问题就解决了。
如果还没有解决,可以尝试 log 中后面几条提示信息。
如果还没有解决,那就按 AS 的提示,下载对应的版本吧。
本文经「原本」原创认证,作者Shawn.XiaFei,访问yuanben.io查询【614WNIDL】获取授权信息。