使用DS-5调试Android中的本机(c / c ++)代码

时间:2013-06-18 09:48:00

标签: android debugging android-ndk arm ds-5

我正在尝试使用ARM开发工作室调试具有本机代码的Android项目,但我无法使其工作。

我尝试了所有类型的教程和其他在线帮助,但是当我尝试调试它时,它将无法正常工作。

然后我决定尝试一个简单的例子而不是我的(更复杂)项目,只是为了让调试器继续运行,但即便失败。
我正在使用本教程:Loading the hello-neon application on to an Android target(除了我想在真实设备上运行它) 我遵循了所有步骤,但是当我最终尝试调试时,我收到了这条消息:

  

无法连接到Hello Neon示例。

     

原因:

     

脚本文件(push_pull.py)在执行期间失败:

     

超时错误检查adb连接

     

有关详细信息,请参阅目标控制台视图

“目标控制台”为空,不再提供详细信息。

我在linux机器(64位Mint 12)和NDK r8e上使用eclipse(Juno release 2)。 我正在尝试运行该项目的设备是Samsun S2(android 4.1.2)。

为什么会发生这种情况的任何想法? 感谢。

4 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。但是,在一两个月之前对应用程序的本机部分进行调试没有任何问题。它工作得很好。我很困惑,但在解决这个问题的过程中。首先看看文件夹"二进制文件"中是否有" gdbserver" -file? (C / C ++观点)?第二件事:我认为ADB连接存在问题。我尝试过variouse设备(索尼Xperia和两个rooged标签,由HTC制作的小型和大型)和variouse OS(OS x mavericks eclipse kepler与ARM和Android插件和Ubuntu 12.04 DS-5 CE与android插件);这是结果:debuging只在Mac上的大型HTC上启动,因为当我只插入HTC时,DS-5透视图开始重置DS Debug配置中的设备信息#34; connections"在哪里选择设备(设备信息:API leven等, Root access available )可能问题出在 root access ....

继续解决......

这是解决方案。在ds-5调试配置中检查你的设备(在"连接"面板中),对它的ser.No进行计算。使用exec命令" adb devices" (设备必须连接,外出)。如果列表中没有设备检查您的JRE,它必须来自Oracle,并且如此处所述安装此链接已从此处获取。然后重新启动eclipse(或操作系统)如果这不能帮助将adb从android-sdk目录复制到/ bin /或导出$ PATH(在我的情况下我已经出口<但需要复制adb)。如果设备出现在列表中 - 那很好))))选择它并查找"设备信息" ...这里非常重要 - 必须有root访问权限!

这是一个实用的建议:从终端启动你的DS-5,看看它发生了什么。

答案 1 :(得分:1)

看起来您的设备未连接, 尝试“adb devices”列出您的设备 如果您看到某些设备列为离线,请通过以下帖子解决此问题: Android 4.2.2 Device Offline

答案 2 :(得分:1)

这是解决方案。在您的ds-5调试配置中检查您的设备(在“连接”面板中),将其复制为ser.No.当exec命令“adb devices”(设备必须连接,offcourse)时,你可以得到这个数字。如果列表中没有设备,请检查您的JRE,它必须来自Oracle,并按照提及的here进行安装,此链接取自here。然后重新启动eclipse(或操作系统)如果这不能帮助将 adb 从android-sdk dir复制到/ bin /或导出$ PATH(在我的情况下我有一个导出<但需要复制adb) 。如果设备出现在列表中 - 那很好))))选择它并查找“设备信息”......这里非常重要 - 必须有root访问权限 !!!

这是一个实用的建议:从终端启动你的DS-5,看看它发生了什么。

答案 3 :(得分:1)

这对我有用...

删除除您将使用的设备之外的所有设备

$ adb kill-server
$ adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
$ adb root
adbd is already running as root