【问题标题】:Android NDK debug APK does not package .so files from obj\local\APP_ABI folderAndroid NDK 调试 APK 不打包 obj\local\APP_ABI 文件夹中的 .so 文件
【发布时间】:2014-06-14 13:11:49
【问题描述】:

我正在使用 Eclipse 构建包含 3 个子项目的 Android 应用程序:

应用结构如下:

 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 对 1.5MB);我不确定在 libs/x86 文件夹中缺少哪些额外的调试信息。

EDIT2 -- 我添加了 APP_CPPFLAGS += -ggdb3 -O0 -gdwarf-2 -Wall -DDEBUG;现在我可以在调试本机代码期间单步执行并查看变量值。

问题已关闭...

【问题讨论】:

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


    【解决方案1】:

    不管怎样,NDK 工具都内置了一定程度的调试支持,而无需提供符号化共享库。查看ndk-gdb 的文档。

    【讨论】:

      猜你喜欢
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 2015-02-11
      • 1970-01-01
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 2014-08-11
      相关资源
      最近更新 更多