Android NDK版本引起的编译错误

一顿操作猛如虎,白白浪费一下午。

接入了一个新的工程,其中有个模块是需要编译so文件的。
但是无论如何怎么编译,一直报错,而且是各种错误。
想到的解决方案:

  1. 升级NDK版本。在sdk manager -> sdk tools中升级到了18.1版本。结果还是编译不过。
  2. 在google顺着build提示的错误查找。没有结果。
  3. 更改compileSdkVersion和targetSdkVersion。没用。

没有头绪中。。。

最后打开了一个旧工程,但是却提示:mips64el-linux-android-strip找不到。
想到了是前面更新过NDK了,可能是新版本的NDK导致的。

网上查了下,有建议下一个android-ndk-r16b版本的。
于是到 https://developer.android.google.cn/ndk/downloads/older_releases
找到r16b版本下载,然后将工程的local.properties中的ndk.dir改成解压后的包路径。

再运行一下,仍然报错,提示:

error: unknown warning option ‘-Wunused-but-set-parameter’; did you
mean ‘-Wunused-parameter’? [-Werror,-Wunknown-warning-option] error:
unknown warning option ‘-Wunused-but-set-parameter’; did you mean
‘-Wunused-parameter’? [-Werror,-Wunknown-warning-option]

顺着线索,网上找到了Mars开源项目中有人也遇到这个问题:
https://github.com/Tencent/mars/issues/55
Issue中有人建议换成r11c可以编译成功。

于是又去下了个android-ndk-r11c的,替换ndk路径后,编译成功!

你可能感兴趣的:(Android,Bugs)