我正在使用Eclipse构建包含3个子项目的Android App:
申请表的结构如下:
MyApp (Android Application, dependency is set to JNIWrapper)
|___ JNIWrapper (JNI wrapper for SharedLib, dependency set to SharedLib)
|____ SharedLib (contains native c/c++ API's, originally developed for Windows)
应用程序与libs / $ APP_ABI文件夹中的共享库的发布(条带)版本构建正常。 如何强制Eclipse在obj / local / $ APP_ABI文件夹中包含对象而不是APK文件? 我已经设置了项目依赖项,最终APK似乎拥有了发布版本所需的一切。 我的主要问题是,我无法在JNIWrapper和SharedLib代码中设置断点。
提前感谢您的帮助。 - NK
编辑 -
我已经使用调试符号构建了发布对象(使用APP_OPTIM:= debug和APP_CFLAGS + = -g -ggdb -O0 -DDEBUG)。现在我可以在JNI和.so文件中设置断点。 但obj / local / x86中的二进制文件比libs / x86中的二进制文件大得多(800KB Vs 1.5MB);我不确定我在libs / x86文件夹中缺少多少额外的调试信息。
EDIT2 - 我添加了APP_CPPFLAGS + = -ggdb3 -O0 -gdwarf-2 -Wall -DDEBUG;现在,我可以在本机代码的调试过程中逐步查看变量值。
问题已关闭......
答案 0 :(得分:0)
对于它的价值,NDK工具内置了一定程度的调试支持,而不提供符号化的共享库。查看ndk-gdb
的文档。