【问题标题】:NDK debugging on the Tegra tabletTegra平板上的NDK调试
【发布时间】:2011-08-15 16:38:51
【问题描述】:

今天我购买了用于原生开发的 Android 平板电脑 - 支持 Tegra 的 Acer Iconina Tab A500 (Honeycomb 3.1)。

然后我从http://developer.nvidia.com/tegra-android-development-pack 下载并安装了 Tegra Android Development Pack(Windows 和 Mac)。当然,我在应用程序设置中打开了“USB 调试”。

我尝试通过“调试为 -> Android NDK 应用程序”菜单命令来调试示例应用程序(如 es2_globe),但在构建之后 - 没有任何反应。

应用程序没有启动。但是如果我选择“Debug As -> Android Application”或“Run As -> Android Application”——一切都很好。

Mac 和 Windows 上的情况相同。

那么,我应该怎么做才能使 NDK 调试工作?

【问题讨论】:

  • 用 ndk-r7 在 Acer Iconia Tab(3.2 无根)、HTC 渴望 HD(2.3.5 无根)、三星 Galaxy Ace(2.3.3 根)上进行了尝试。每次收到消息,都贴在下面。

标签: android debugging android-ndk tablet tegra


【解决方案1】:

这可能是您的应用程序未启动的各种原因,您可以在控制台输出中看到有什么问题,例如在以下示例中 gdbserver 未成功运行,这种情况可以修复 root 设备。

[2011-11-03 22:01:58 - testndk] NDK:适用于 Android NDK 的 NVIDIA 调试管理器!
[2011-11-03 22:01:58 - testndk] NDK:adb 运行正常...
[2011-11-03 22:01:58 - testndk] NDK:执行 com.xxx.android.testndk.TestNdkActivity 活动启动
[2011-11-03 22:01:58 - testndk] NDK:自动目标模式:使用设备“HT09AP801162”
[2011-11-03 22:01:58 - testndk] NDK:检查是否有已经在运行的 gdbservers 0.079
[2011-11-03 22:01:58 - testndk] NDK:未找到正在运行的 gdbserver 进程。
[2011-11-03 22:01:58 - testndk] NDK:检查是否有正在运行的应用程序 com.xxx.android.testndk 0.188
[2011-11-03 22:01:58 - testndk] NDK:未找到正在运行的应用程序
[2011-11-03 22:01:58 - testndk] NDK:卸载包 com.xxx.android.testndk 0.282
[2011-11-03 22:02:00 - testndk] NDK:同步应用程序 1.469
[2011-11-03 22:02:00 - testndk] NDK:将 testndk.apk 上传到设备“HT09AP801162”
[2011-11-03 22:02:00 - testndk] NDK:安装 testndk.apk...
[2011-11-03 22:02:01 - testndk] NDK:成功!
[2011-11-03 22:02:02 - testndk] NDK:启动应用程序 3.329
[2011-11-03 22:02:02 - testndk] NDK:在设备上启动活动
com.xxx.android.testndk.TestNdkActivity
[2011-11-03 22:02:02 - testndk] NDK:执行 shell 命令:am start -D -n com.xxx.android.testndk/com.xxx.android.testndk.TestNdkActivity -a android.intent.action .MAIN -c android.intent.category.LAUNCHER
[2011-11-03 22:02:02 - testndk] ActivityManager:开始:Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.xxx.android.testndk/ .TestNdkActivity }
[2011-11-03 22:02:02 - testndk] NDK:等待 3 秒让应用程序启动 3.891
[2011-11-03 22:02:02 - testndk] NDK:尝试将调试器连接到端口 8602 上的“com.xxx.android.testndk”
[2011-11-03 22:02:05 - testndk] NDK:执行端口转发 6.891
[2011-11-03 22:02:05 - testndk] NDK:计算已启动应用程序 6.907 的 PID
[2011-11-03 22:02:05 - testndk] NDK:找到已启动应用程序的 PID:1308
[2011-11-03 22:02:05 - testndk] NDK:启动 gdbserver :12345 --attach 1308 7.016
[2011-11-03 22:02:05 - testndk] GdbServerReceiver:gdbserver:权限被拒绝
[2011-11-03 22:02:12 - testndk] NDK:Gdbserver 未正确启动

【讨论】:

    【解决方案2】:

    Native Debug 无法正常工作的原因有很多。您可以尝试以下方法:

    1. 我只能使用ndk版本r8d调试native,以前的版本给了很多困难
    2. 如果在编译期间或与设备同步期间出现任何错误,请检查控制台视图
    3. 有时会出现“gdbserver 分段错误”的错误。验证您是否使用 NDK_DEBUG = 1 进行编译。也可以在另一台设备上尝试,有时该设备是有问题的设备。
    4. 打开 bin 文件夹中的 apk,并验证除了您的普通 .so 文件之外还有一个 gdbserver 和一个 gdb.setup
    5. 以防万一,请检查清单中的调试标志是否为 true
    6. 重启 adb 和断开重新连接设备会有所帮助。

    有关更多详细信息,您可以发布控制台视图显示的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2012-02-17
      • 2011-07-29
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多