您的位置:首页 > 移动开发

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

2017-06-19 11:13 197 查看
故事背景是这样的  项目要扫描车牌号的功能,在网上寻了个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   没再报错   问题解决!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐