2

很长一段时间以来,我一直在(从 mac 终端)成功构建这个本机应用程序,但今天我遇到了一个我似乎无法确定的错误。在厌倦了所有 javac 警告后,我升级到了更新版本的 ant。我不确定它是否相关,但时间是可疑的。我仍然可以构建、部署和运行我的应用程序,但现在我不能再使用 ndk-gdb 来调试应用程序的本机部分。经检查,gdb.setup 文件未添加到调试 apk 中。

这是构建顺序、缩写输出和信息。我正在寻找有关如何解决该问题的建议。

我已经对 NDK 和 ant 构建进行了全面清理

android NDK 版本和 android SDK 版本都是最新的。我使用内置的 ndk-bundle 加载了 android studio sdk 工具。

我们开发的设备没有植根,也不是一种选择。

hsmith$ java -version java 版本“1.8.0_45”

Java(TM) SE 运行时环境(构建 1.8.0_45-b14) Java HotSpot(TM) 64 位服务器 VM(构建 25.45-b02,混合模式)

hsmith$$ANT_HOME

-bash: /Users/hsmith/dk/ant/apache-ant-1.9.6: 是一个目录

hsmith$ ndk-build -j4 NDK_DEBUG=1

[armebi-v7a] Gdbserver : [arm-linux-androideabi-4.8] libs//gdbserver

[armebi-v7a] Gdbsetup : libs//gdb.setup

[armebi-v7a] 安装:lib1.so => libs/armebi-v7a/lib1.so

[armebi-v7a] 安装:lib2.so => libs/armebi-v7a/lib2.so

[armebi-v7a] 安装:lib3.so => libs/armebi-v7a/lib3.so

hsmith$ ant debug ... -package: [apkbuilder] 找到修改后的输入文件

[apkbuilder] 创建 -debug-unaligned.apk 并使用调试密钥对其进行签名...

-后包装:

-做调试:

[zipalign] 在最终的 apk 上运行 zip align...

 [echo] Debug Package: /Users/hsmith/packageFolder/bin/<package>-debug.apk

[propertyfile] 更新属性文件:/Users/hsmith/packageFolder/bin/build.prop

[propertyfile] 更新属性文件:/Users/hsmith/packageFolder/bin/build.prop

[propertyfile] 更新属性文件:/Users/hsmith/packageFolder/bin/build.prop

[propertyfile] 更新属性文件:/Users/hsmith/packageFolder/bin/build.prop

-构建后:

调试:

构建成功

hsmith$ adb install -r ~/packageFolder/bin/-debug.apk

hsmith$ ndk-gdb adb --start

错误:包不可调试!您可以通过两种方式解决此问题:

  • 调用 'ndk-build' 时使用 NDK_DEBUG=1 选项重建。

  • 修改清单以将 android:debuggable 属性设置为“true”,

    然后正常重建。

在其中之一之后,重新安装到设备上!

我解压apk文件找到

解压后的apk文件/lib/target/

hsmith$ ls -la

总计 48264

drwxr-xr-x 12 hsmith 员工 408 8 月 25 日 14:50。

drwxr-xr-x 5 hsmith 员工 170 8 月 25 日 14:50 ..

-rwxr-xr-x 1 hsmith 员工 409940 Jun 3 11:47 gdbserver

-rwxr-xr-x 1 hsmith 员工 33920 8 月 25 日 14:44 lib1.so

-rwxr-xr-x 1 hsmith 员工 165092 8 月 25 日 14:44 lib2.so

-rwxr-xr-x 1 hsmith 员工 1614028 8 月 25 日 14:44 lib3.so

注意没有 gdb.setup 文件

我不在清单中使用 debuggable=true ,因为不再需要它,但是包括它对结果没有影响。

更新: https ://code.google.com/p/android/issues/detail?id=183455 这正是我遇到的问题。如果将目标 gdb.setup 文件从目标目录复制到 ./lib 目录,则可以使 ndk-gdb 工作;ndk-gdb 中的 COMPAT_ABI 变量设置不正确,并将脚本发送到旋转中。我希望他们尽快解决这个问题。几乎三天的时间都浪费在了一条损坏的工具链上。

4

1 回答 1

0

更新:https ://code.google.com/p/android/issues/detail?id=183455这正是我遇到的问题。如果将目标 gdb.setup 文件从目标目录复制到 ./lib 目录,则可以使 ndk-gdb 工作;ndk-gdb 中的 COMPAT_ABI 变量设置不正确,并将脚本发送到旋转中。我希望他们尽快解决这个问题。几乎三天的时间都浪费在了一条损坏的工具链上。

于 2015-09-23T16:15:07.953 回答