无法在eclipse上调试基于android库构建的android本机代码

无法在eclipse上调试基于android库构建的android本机代码,android,debugging,android-ndk,android-library,Android,Debugging,Android Ndk,Android Library,我已经为此挣扎了3天,但我无法完成它。 我有一个android项目,它链接到eclipse上的android库,其中包含本机代码 我看到了,这与我的模式相同,但是这里提出的步骤不起作用 我在这里重写了以下步骤: 转到“运行”菜单->“调试配置” 在左窗格的“Android本机应用程序”下,选择您的应用程序 在“调试器”选项卡下,单击“共享库”部分中的“添加…” 浏览到android库项目目录并添加其子目录obj/local/armeabi 应用和调试 第一个问题是,如果应用程序未设置为本机应用程


我已经为此挣扎了3天,但我无法完成它。
我有一个android项目,它链接到eclipse上的android库,其中包含本机代码
我看到了,这与我的模式相同,但是这里提出的步骤不起作用

我在这里重写了以下步骤:

  • 转到“运行”菜单->“调试配置”
  • 在左窗格的“Android本机应用程序”下,选择您的应用程序
  • 在“调试器”选项卡下,单击“共享库”部分中的“添加…”
  • 浏览到android库项目目录并添加其子目录obj/local/armeabi
  • 应用和调试
  • 第一个问题是,如果应用程序未设置为本机应用程序,我无法为本机应用程序设置调试配置(仅链接到本机应用程序),因此我无法选择任何要调试的项目

    我尝试将android应用程序项目设置为具有c/c++特性,使用虚拟jni/android.mk,只是在构建时没有显示任何错误。(不过,我怀疑这是正确的做法)
    然后应用程序运行并正确链接,我能够按照这些步骤操作——1到5。但当我调试它时,控制台显示(BasicCharacterWithLib是应用程序的名称):

    而且它永远不会在任何断点上停止(本机或非本机)

    我也知道,在不同的配置(直接执行应用程序)上有相同的症状,但仍然没有答案

    我已经在同一台设备上成功调试了另一个应用程序,这是一个测试应用程序,其中包含本机代码,因此我猜问题不可能是由于设备配置造成的

    你知道怎么解决吗

    一些进一步的细节:

    • 我使用adt包中的eclipse(版本v22.6.2,sdk可用的最高api级别为19,ndk版本为r9)
    • 应用程序在多个线程上运行(通过AsyncTask从java执行),但此时仅启动主线程。
    • 如果我将其作为android应用程序进行调试,即使是在多线程中,调试过程也只能在java端工作
    • 我在Application.mk中将APP_平台设置为android-14,与manifest中的minSdkVersion=“14”相同
    • 我还尝试重新启动eclipse,重新启动设备,并再次拔下USB插头

      • 请参见此。很可能是磁盘上不存在的同一问题的
        obj/local/armeabi
        文件夹

        恐怕这与我的问题无关。如果我将库更改为应用程序本身,我可以调试库。问题是,这是一个android库,我发现“共享库”下的“添加”按钮没有添加所需的尾部斜杠。您可以深入eclipse设置文件并编辑该值,但只需确保设置了一个调用
        set solib search path
        的gdb命令文件就更容易了。我的经验是,不设置搜索路径不应该导致您看到的错误输出。
        [2014-05-27 12:18:09 - BasicCharacterWithLib] Error while obtaining file from device
        [2014-05-27 12:18:09 - BasicCharacterWithLib] com.android.ddmlib.SyncException: Writing local file failed!