这篇文章上次修改于 2501 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
升级NDK后,老项目在运行或者打包时就会报此错误,开始的时候从网上找到一种解决办法,修改local.properties
文件中的 ndk.dir
ndk.dir=/Users/dean/Dev/android-sdk/ndk-bundle
#修改成
ndk.dir=/Users/dean/Dev/android-sdk/ndk-10
就是把 bundle 换成一个数字,确实是可行的,但local.properties
这个文件是自动生成的,每次重新打开工程时都要修改,很是麻烦。
看报错内容,是说mips64el-linux-android-strip
这个东西执行不了,于是,顺藤摸瓜根据那个路径找找这个东西,当找到darwin-x86_64
这一层文件夹时,就没有了,文件夹中只有一个文本NOTICE-MIPS64
,打开来看
This mips64el-linux-android-4.9 directory exists to make the NDK compatible with the Android
SDK's Gradle plugin, version 3.0.1 and earlier, which expects the NDK
to have a MIPS64 toolchain directory.
这就都明白了,为什么新项目的local.properties
ndk.dir与老的一样,而只有老项目才会报错。
两个解决方法
升级Gradle plugin,修改build.gradle(Project)
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' //修改到高于或等于3.0.1的版本 } }
- 修改NDK的本地路径 菜单栏 File - Project Structure - SDK Location - Android NDK location,修改成一个低版本的NDK,我的NDK是在升级到17.0.4640043 rc1后出现的这个问题。默认情况下,NDK使用的是android-sdk下的ndk-bundle这个文件下的NDK,但正是这个版本被升级了,所以需要从网上去找一个低版本的NDK,因为我之前搞Cocos需要用NDK-10,直接指定过来一试,问题解决。
Tip 不建议使用第一种方式,想起同事经常说的一句话
你见过代码有保质期吗?Android studio的代码就有[哭笑]
其实说的就是 Gradle ,当你打开一个老项目,AS提示你,Gradle Update的时候,你一定要有充足的勇气和充足的时间,说多了全是眼泪...
没有评论