Error:Execution failed for task ':app:buildNative'. > A problem occurred 'x/x/x/' ndk-build' 错误解决

来源:互联网 发布:宁夏广电网络总经理 编辑:程序博客网 时间:2024/06/05 20:41

故事背景是这样的  项目要扫描车牌号的功能,在网上寻了个demo(里面有N多的.so和ram、x86、.h 、.cpp、.mk等各种看不懂的文件 ),导入android studio 运行就报这个错,  然后去看自己ndk路径   没错啊 ,然后翻墙googole 看完了相关的66条结果  还是没用。

最后无奈又去看 本地我的ndk-build这个东西,发现有二个文件名字很类似,  一个是

ndk-build.cmd
另一个是
ndk-build

Stack Overflow上面有一个挺多赞的答案  如下:

看着好像是要区分下,如果是windows系统就要用带.cmd后缀的文件运行(难道android studio自己不会区分吗? 疑问....);

最后我把自己的项目的build.gradle 文件里面改成了这样   如下:

task buildNative(type: Exec, description: 'Compile JNI source via NDK') {    def ndkDir = android.ndkDirectory    if (Os.isFamily(Os.FAMILY_WINDOWS)) {        commandLine "$ndkDir/ndk-build.cmd",                '-C', file('src/main/jni').absolutePath, // Change src/main/jni the relative path to your jni source                '-j', Runtime.runtime.availableProcessors(),                'all',                'NDK_DEBUG=0'    } else {        commandLine "$ndkDir/ndk-build",                '-C', file('src/main/jni').absolutePath, // Change src/main/jni the relative path to your jni source                '-j', Runtime.runtime.availableProcessors(),                'all',                'NDK_DEBUG=0'    }}
注意的是 if里面的Os需要导入一个类:
import org.apache.tools.ant.taskdefs.condition.Os
这个写在build.gradle文件的上面几行就行了。。。



完了后再   编译、运行   2分钟过后  ok   没再报错   问题解决!

阅读全文
0 0