Error:FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:externalNativeBuildDebug'.
> Build command failed.
Error while executing process E:\Android\Sdk\ndk-bundle\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=G:\project\Android\Anti-shake-arithmetic\app\src\main\jni\Android.mk NDK_APPLICATION_MK=G:\project\Android\Anti-shake-arithmetic\app\src\main\jni\Application.mk APP_ABI=armeabi NDK_ALL_ABIS=armeabi NDK_DEBUG=1 APP_PLATFORM=android-15 NDK_OUT=G:/project/Android/Anti-shake-arithmetic/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=G:\project\Android\Anti-shake-arithmetic\app\build\intermediates\ndkBuild\debug\lib G:/project/Android/Anti-shake-arithmetic/app/build/intermediates/ndkBuild/debug/obj/local/armeabi/libNDKUtils.so}
[armeabi] StaticLibrary : libclapack1.a
process_begin: CreateProcess(NULL, E:/Android/Sdk/ndk-bundle/build//../toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-ar crsD G:/project/Android/Anti-shake-arithmetic/app/build/intermediates/ndkBuild/debug/obj/local/armeabi/libclapack1.a
make: *** [G:/project/Android/Anti-shake-arithmetic/app/build/intermediates/ndkBuild/debug/obj/local/armeabi/libclapack1.a] Error 206
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
 
出现上述错误,是我在NDK开发中,想在 Android Studio 配置 debug 环境(具体步骤:http://www.cnblogs.com/xiaoxiaoqingyi/p/7143536.html),于是在 gradle 配置文件下 添加了如下节点:
 externalNativeBuild {
// 采用ndk-build
ndkBuild {
path 'src/main/jni/Android.mk'
}
// 如采用 cmake 使用如下配置
//cmake {
// path 'src/main/jni/CMakeLists.txt'
//}
}
    在没添加这些节点的时候, 我编译是能通过的,且能运行 .so动态库。加入这些节点后,就出现了上面的错误。第一反应,我看到的是 NDK_PROJECT_PATH=null ,想到应该是 .so 库没有衔接好,于是我google了好久,大概有如下解决方案,你可以一 一去尝试:
 
1、修改 module 下 gradle 里 sourceSets 指定动态库路径节点,该节点用来配置 jni 库的路径。Android Studio 环境下,默认的 jniLibs 路径是:src/main/jniLibs。如果你是从旧项目移植过来的话,可能没有该目录,你可以在 android 节点中添加如下配置:
//指定动态库路径
sourceSets {
main {
jni.srcDirs = [] // disable automatic ndk-build call, which ignore our Android.mk
jniLibs.srcDir 'src/main/libs'
}
}
2、也有方案说,需要把 编译好的 动态库放到 app/libs 目录下, 因为这个目录默认是存放 jar包,把编译好的动态库放入 app/libs 目录后,再在 android 节点中添加如下配置:
sourceSets {
main {
jniLibs.srcDirs = ['libs‘]
}
}
3、如果上述都两种方案都没解决你的问题,这很大可能是 你的Android.mk 配置问题。你的Android.mk 是否有一个 总的 Android.mk,然后include 了其它子Android.mk ? 如果是,你应该重新配置好你的子Android.mk。像 OpenCV native库, 它就是用一个 总的 Android.mk,include 了其它子Android.mk,OpenCV 库是配置是没有问题的,我编译成功过。
 
     我得到最开始的那个错误是 因为我在 配置levmar 库时,levmar 使用了第三方的库(clapack),而子Android.mk 没有配置好,最后,我把 clapack 库去了,因为该项目刚好也没有使用到 clapack 库。最后,编译成功了。
 
    上述我也说了,我的目的是为了能debug C/C++ 代码,编译成功后,其实debug 环境是配置好了,但还是debug 不了,就是说,在那行代码设置了断点,运行到那里了,还是停不下来。 只有C/C++代码报错的时候, debug才检测到。这个问题我一直没有解决,很有可能的原因是,我使用了比较多的 第三方编译好的动态库,而直接使用源代码,如 ffmpeg,opencv。
 
 

NDK配置debug环境时:Error:FAILURE: Build failed with an exception的更多相关文章

  1. FAILURE: Build failed with an exception. Crunching Cruncher screen.png failed

    自己测试ionic的模板项目cutePuppyPics时,按照https://github.com/driftyco/ionic/blob/2.0/CHANGELOG.md#angular-updat ...

  2. FAILURE: Build failed with an exception.

    FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:installD ...

  3. Android Studio 中 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileDebugAidl'.的问题解答

    Android Studio 中 FAILURE: Build failed with an exception. * What went wrong: Execution failed for ta ...

  4. Starting a Gradle Daemon, 5 busy and 1 incompatible and 1 stopped Daemons could not be reused, use --status for details FAILURE: Build failed with an exception. * What went wrong: Could not dispatch

    执行gradle build出的问题,查看hs_err_pid11064.log日志文件发现,是电脑的RAM不足导致

  5. NDK开发,如何配置 debug环境

    刚开始做NDK 开发的时候,Android Studio 还没提供了 native C/C++ 设置断点 调试,我们都是通过输出 日志来调试,这样费时耗力.Android Studio 应该是在 2. ...

  6. Cocos2d-x 2.2.3 使用NDK配置编译环境

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/wwj_748/article/details/30072379 Cocos2d-x 2.2.3 使用 ...

  7. Vue+Webpack配置css-loader时报错:Module build failed: Unknown word

    使用Vue+Webpack搭建工程时,在webpack.config.js中的module的rules里针对各种文件配置加载工具.在针对css文件配置时遇到一个问题:打包构建时报错——Module b ...

  8. 安卓真机或者模拟器运行安装应用时提示 Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]解决办法

    有时候为了方便调试APP,会在电脑上开启模拟器来调试我们的代码,有时候会出现 Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract n ...

  9. 初始化构建React+Ts项目时出现:Module build failed (from ./node_modules/css-loader/dist/cjs.js): CssSyntaxError

    具体错误 ERROR in ./src/index.tsx Module build failed (from ./node_modules/css-loader/dist/cjs.js): CssS ...

随机推荐

  1. vi命令加行号查找替换等命令

    一.加行号           : set nu二.vi查找:    当你用vi打开一个文件后,因为文件太长,如何才能找到你所要查找的关键字呢?在vi里可没有菜单-〉查找,              ...

  2. Canvas DrawImage截取和压缩图片的陷阱

    html5的canvas十分之强大,可以做到快速的截取压缩出新的图片! 不过最近开发过程中遇到一个问题,图片压缩后使用toDataURL取得图片显示为一片漆黑,什么都没有! 折腾了很久,起初以为是上传 ...

  3. 对[UIApplication sharedApplication]理解

    [ sharedApplication]返回UIApplication * application = nil; +(UIApplication*) shareApplication{ if(appl ...

  4. Django_注册全局消息

    需求: 对于登录用户,无论他在哪个页面,我都需要给他全局发送一个消息提示,Django中request就是一个全局变量 那,如何做? 在models 中urser表,继承user的表类中写上一个函数, ...

  5. Windows核心编程&内存管理

    1. 每个进程都有自己的虚拟地址空间,对于32位机器而言,这个地址空间的大小为4GB(2^32 / 1024^3),这个虚拟地址空间只不过是一个内存地址空间, 为了能够正常读/写数据,我们还需要把物理 ...

  6. php 在foreach中循环数组的时候添加元素的属性

    foreach($arr as $k => &$v){ //注意,由于上面遍历的时候写了地址传值符&, //所以下面可以直接给$v 赋值;如果不写&符号,下面这样写是没有 ...

  7. 为mysql数据库建立索引

    前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过 ...

  8. http_build_query()函数使用方法

    http_build_query()函数的作用是使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串. 写法格式:http_build_query ( mixed $query ...

  9. python异步加协程获取比特币市场信息

    目标 选取几个比特币交易量大的几个交易平台,查看对应的API,获取该市场下货币对的ticker和depth信息.我们从网站上选取4个交易平台:bitfinex.okex.binance.gdax.对应 ...

  10. 【转】 SED多行模式空间

    1. sed执行模板=sed '模式{命令1;命令2}' 即逐行读入模式空间,执行命令,最后输出打印出来 2. 为方便下面,先说下p和P,p打印当前模式空间内容,追加到默认输出之后,P打印当前模式空间 ...