前端时间项目组让我改一个比较老的项目,说是用Android Studio2.3版本可以直接运行,于是我下载了一个2.3.2的,结果出现了一堆问题,总结下:
首先导入项目后build完直接报出:No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
看异常可以知道是NDK出现了问题,上述异常意思是没有找到NDK目录下toolchains文件夹下mips64el-linus-android,然后从本地查看下NDK路劲,确认下文件夹中到底有没有该文件
然后进入该文件夹中看下:/Library/Android/sdk/ndk/20.0.5594570/toolchains。结果确实没有mips64el-linux-android这个文件夹
去网上搜了一下才知道是当前使用的NDK的版本高了导致的,最新的 NDK 移除了对mips
abi 的支持,并且早期版本的 android gradle 插件仍然检查 mips 工具链的存在。
想要使用就得下载r17之前的版本。
解决方案:
方案一:升级gradle插件至最新版,同时NDK版本也要更新至最新版(更新完插件会自动下载最新版NDK)。
也可以手动下载,新版下载地址:https://developer.android.google.cn/ndk/downloads
classpath "com.android.tools.build:gradle:3.2.0"
方案二:使用NDK r17之前的版本,因谷歌对旧版本不做支持,特将旧版整理了一页:旧版下载地址:https://github.com/android/ndk/wiki/Unsupported-Downloads
下载完后解压一下,然后将解压完的文件放入/Library/Android/sdk/ndk/ 路径中,最后再去AndroidStudio中配置下NDK路径即可。
至此就可以重新rebuild一下项目了。
Mac电脑:要是从网站上手动下载的NDK,rebuild项目时会有弹框提示:无法打开“clang”,因为无法验证开发者。
这时不要点击移动到废纸篓,点击取消,随后进入该文件夹路径:
/Library/Android/sdk/ndk/android-ndk-r13b/toolchains/llvm/prebuilt/darwin-x86_64/bin
把 clang 和 clang++ 这两个文件右键-使用终端打开,运行一下就好了,然后回到AndroidStudio从新rebuild下就好了。
吐槽下网上其他的解决案例:
百度上的帖子有的给出的下载链接都点击不进去,可能需要FQ才能下载(估计帖子年头长了,现在谷歌给出了中国的开发者平台,很快、很香)
stack overflow上的解决方案(我已经测试过了,不好用,呵呵,感兴趣的可以尝试下):
1、在现有的NDK中创建一个mips64el-linux-android文件夹。
2跟arm-linux-androideabi-4.9 文件夹做个关联,从而实现骗过gradle的插件检查
# on Mac cd ~/Library/Android/sdk/ndk/20.0.5594570/toolchains ln -s aarch64-linux-android-4.9 mips64el-linux-android ln -s arm-linux-androideabi-4.9 mipsel-linux-android
整理不易,转载请注明出处,谢谢!