我已经为此挣扎了三天,但我没能完成
我有一个android项目,链接到eclipse上的android库,其中包含本地代码
我看到了这个问题,它与我的模式相同,但那里提出的步骤不起作用。
我在这里重写了步骤,它们是:
- 转到"运行"菜单->"调试配置">
- 在左侧窗格中的"Android Native Application"下,选择您的应用程序
- 在"调试器"选项卡下,单击"共享库"部分的"添加…">
- 浏览到你的android库项目目录,并添加其子目录obj/local/armeabi
- 应用并调试
第一个问题是,如果应用程序没有设置为本机应用程序(仅链接到本机应用(,我就无法为本机程序设置调试配置,因此我无法选择任何要调试的项目。
我试着将android应用程序项目设置为具有c/c++性质,使用伪jni/android.mk,只是在构建时没有显示任何错误。(不过,我怀疑这是正确的做法(
然后应用程序运行并正确链接,我可以按照这些步骤进行操作——1到5。但当我调试它时,控制台显示(BasicCharacterWithLib是应用程序的名称(:
[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!
而且它永远不会在任何断点(本地或非本地(上停止
我也知道另一个问题,在不同的配置(直接执行应用程序(上有相同的症状,但它仍然没有答案。
我已经在同一设备中成功调试了另一个应用程序,这个测试应用程序内部有本机代码,所以我想问题不可能是由于设备配置造成的。
你知道怎么解决吗?
一些进一步的细节:
- 我使用adt捆绑包中的eclipse(版本v22.6.2,可用的sdk最高api级别为19,ndk版本为r9(
- 该应用程序在多个线程上运行(通过AsyncTask从java执行(,但此时只有主线程被启动
- 如果我将其作为android应用程序进行调试,即使是在多线程中,调试过程也只能在java端工作
- 我在Application.mk中将APP_PLATFORM设置为android-14,与清单中的minSdkVersion="14"相同
- 我还尝试重新启动eclipse,重新启动设备,并再次拔下和插入USB
请参阅此问题。可能是磁盘上不存在obj/local/armeabi
文件夹的相同问题。