Android NDK调试APK不包装来自obj \ local \ APP_ABI文件夹的.so文件

时间:2014-04-28 20:17:27

标签: debugging android-ndk java-native-interface apk symbols

我正在使用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;现在,我可以在本机代码的调试过程中逐步查看变量值。

问题已关闭......

1 个答案:

答案 0 :(得分:0)

对于它的价值,NDK工具内置了一定程度的调试支持,而不提供符号化的共享库。查看ndk-gdb的文档。