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

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

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

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

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

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

看着好像是要区分下,如果是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   没再报错   问题解决!