我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情
一顿操作猛如虎,白白浪费一下午。
接入了一个新的工程,其中有个模块是需要编译so文件的。
但是无论如何怎么编译,一直报错,而且是各种错误。
想到的解决方案:
- 升级NDK版本。在sdk manager -> sdk tools中升级到了18.1版本。结果还是编译不过。
- 在google顺着build提示的错误查找。没有结果。
- 更改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路径后,编译成功!