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上面有一个挺多赞的答案 如下:
看着好像是要区分下,如果是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 没再报错 问题解决!