Android NDK - 无法在 Visual Studio 2017 中调试

Android NDK - Can not debug in Visual Studio 2017

本文关键字:Studio 2017 调试 Visual NDK Android      更新时间:2023-10-16

我今天安装了Visual Studio 2017(并重新安装...(并尝试在C++中调试Android应用程序。 当我在Microsoft Android模拟器中以调试模式启动应用程序时,我收到一个错误消息框:

找不到 Android 调试桥 (adb.exe(

模拟器无论如何都在启动..现在我尝试再次启动该应用程序,并在输出中收到以下错误消息:

1>安装软件包时出错。设备"无效与否 运行。 请切换到其他设备,或使用安卓虚拟 设备 (AVD( 管理器,用于启动兼容的模拟器,或连接 兼容的安卓设备。

1>设备无效或未运行。

请注意空设备名称。

当我在真正的Android设备中启动该应用程序时,我收到以下错误消息框:

无法启动调试。Android 命令 'run-as' 失败。可收纳 "com.******"是未知的。

故障排除步骤: - 尝试从应用程序列表中启动应用程序。如果应用不在应用列表中,或者无法启动,这可能表示 应用部署。 - 确保您已安装适用于您的设备的所有更新。 - 安装最新固件或使用最新的可用映像刷新设备。即使您已经在 最新版本的Android作为无线Android升级过程 可能会损坏本机调试所需的文件权限。对于许多人 三星设备,这可以使用Kies完成。 - 向制造商报告问题。Android 兼容性测试套件"testRunAsHasCorrectCapabilities"针对此条件进行测试 并且很可能失败。

但是我的应用程序正在Android设备中安装并且可以启动。

我觉得在Visual Studio中开发Android是有缺陷的。我使用Xamarin Android和C#,它通常运行良好。

有什么想法吗?有人怎么得到同样的错误?

出现此问题的原因是,在应用中调试本机代码需要运行 gdbserver,这是一种在 Android 设备上运行的特殊工具,可将应用的内部公开给调试器。如果您的 Android 设备对/data/system/packages.list 文件的权限过于严格,则运行方式工具将无法读取该文件并使用正确的权限启动 gdbserver。VisualGDB 提供了一种解决方法,允许直接从您的应用程序启动 gdbserver 并自动连接到它。打开 VisualGDB 项目属性,转到调试设置页面并选择"启动 gdbserver – 从应用程序手动">

有关更多信息,您可以参考此处