从开源网站下载的源码,需要自己编译c源码成so类库。当时用Android studio 运行总是报错
”finished with non-zero exit value 2"
报错定位到build.gradle文件里负责编译
task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') {
println('executing ndkBuild')
def ndkBuildPath = getNdkBuildPath();
commandLine ndkBuildPath, '-j8', '-C', file('src/main').absolutePath
}
其实就是执行Ndkbuild.cmd这个命令。
网上搜了好多没看懂
最后最简单的办法,就到Aplication.mk所在文件夹,手动在命令行里调用Ndkbuild进行编译,看到确切的报错提示了。application.mk文件里APP_ABI字段有问题,这个ABI就是编译目标平台。因为开源文件原先发布开发环境版本较早,一些ABI已经不支持了。删掉就可以了。
APP_ABI := armeabi-v7a arm64-v8a x86 #armeabi mips
其中#是注释掉的内容 arm64-v8a是我后来添加的。
最终,在Android studio里编译执行就没有问题了。