ndk的注意事项

从开源网站下载的源码,需要自己编译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里编译执行就没有问题了。

posted @ 2018-07-11 15:48 伊一线天 阅读(...) 评论(...) 编辑 收藏