【问题标题】:Android NDK - Can not debug in Visual Studio 2017Android NDK - 无法在 Visual Studio 2017 中调试
【发布时间】:2018-09-30 20:36:12
【问题描述】:

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

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

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

1>安装包时出错。设备 '' 是否无效 跑步。请切换到其他设备,或使用 Android Virtual 设备 (AVD) 管理器以启动兼容的仿真器,或连接 兼容的 Android 设备。

1>设备无效或未运行。

注意空的设备名称。

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

无法开始调试。 Android 命令“运行方式”失败。可打包 'com.**********************' 未知。

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

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

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

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

【问题讨论】:

    标签: android c++ visual-studio xamarin android-ndk


    【解决方案1】:

    之所以会出现此问题,是因为在您的应用中调试本机代码需要运行 gdbserver - 一种在 Android 设备上运行的特殊工具,它将您的应用的内部结构暴露给调试器。如果您的 Android 设备对 /data/system/packages.list 文件的权限过于严格,run-as 工具将无法读取该文件并以正确的权限启动 gdbserver。 VisualGDB 提供了一种解决方法,允许直接从您的应用程序启动 gdbserver 并自动连接到它。打开 VisualGDB 项目属性,进入调试设置页面并选择“启动 gdbserver – 从应用程序手动”

    更多信息可以参考here

    【讨论】:

    • Hm okey,所以问题是 Android 设备不允许我从 Visual Studio 进行调试。如果我可以调试它,我将测试 VisualGDB 和 se。但是 Microsoft Android 模拟器呢,它应该开箱即用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    相关资源
    最近更新 更多