最近在打开一个 Android 工程时,在导入到 Android Studio 后很快就会出现如下问题:
问题原因这个问题的最根本原因是因为本地的 NDK 版本过高,而之前的工程在编译时使用的是老版本的 Gradle 插件,这样在打开工程进行同步时,老版本的插件会检查 NDK 中的两个工具链:
mips64el-linux-android-4.9 mipsel-linux-android-4.9这两个文件夹会在 NDK 目录下的 toolchains 文件夹找到。然而在 NDK 的 r17c 版本之后,Google 删除了这两个工具链,因此当你的 NDK 版本升级到此版本之上,那么就会因为找不到这两个文件夹而出现这个问题了。
解决办法针对这个问题,有两种解决办法:
升级 Gradle 插件版本这种方法是有官方推荐,如上图所示,在问题描述中,Android Studio 就提示升级 plugin 。在新版本的插件中,Android 将不会检查这两个工具链,因此可以解决这个问题。
但是对于老项目,升级插件有可能带来新的问题。比如说新的插件版本可能会删除或修改一些在老项目中正在使用的方法,这又会导致找不到方法的问题。那此时可以尝试如下的第二种方法。
下载缺失的工具链文件我们可以到 Google 的官方网站下载到老版本的 NDK,然后将其中的这两个文件夹复制到自己的 NDK 对应的文件夹中。这样可以通过编译,但这并不是官方推荐的方法。
下载地址:Android NDK 老版本
这么做我们需要特别注意两个问题:
下载的插件版本需要为 r17c(此版本之后将不会包含缺失的那个工具链) 注意对应平台(Windows,Mac,Linux)鉴于 Android NDK 文件较大,下载也比较麻烦。所以我已经把缺失的文件压缩上传了,不过注意,这里只是 Mac 版本的,有需要的朋友从此处下载会更方便一些:
链接:https://pan.baidu.com/s/11TcXElYu5Hy8CN0UA5wH9g 密码:uon8
下载之后解压到你的 NDK 目录下的 toolchains 文件夹下即可。