无法在Visual Studio Android模拟器中调试Xamarin应用程序

4

我正在尝试学习Xamarin,但我的设置发生了一些问题,现在我无法通过单击Debug/Run按钮在模拟器中打开我的应用程序。它只会打开或激活(如果已经打开)Android设备管理器。

Visual Studio的输出窗口(Build)显示:

The debug was canceled. Please create an android emulator to debug the application.

我已创建一个模拟器并且它能够正常运行。当我尝试运行我的应用程序时,模拟器正在运行。

此外,在Android设备管理器中会弹出一个消息框,内容如下:

Device Manager

Device error: error: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.

我不知道这些的意思,也找不到涵盖这些内容的文档。
'adb kill-server' 没有任何效果。我尝试在 adb 命令提示符中使用该命令,并手动启动了管理员命令提示符并尝试杀死和重启 adbd。我尝试使用 'adb keygen' 重新生成密钥,但我无法使任何内容生效。
我使用 Windows 10。
当我启动 VS、点击 Run 后,Android 设备管理器打开创建新模拟器对话框,我取消后运行已经创建的模拟器,等待它启动后再次点击 Run,这只是将 ADM 窗口带到前面。
[D:]:                     FindVersionFile: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Version, result=False
[D:]:                     FindVersionFile: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Version.txt, result=True
[I:]:                     Found Xamarin.Android 9.3.0.23
[I:sdk]:                  Runtime path: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android
[I:sdk]:                  Framework path: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0
[D:]:                     ValidateAndroidSdkLocation: `C:\Program Files (x86)\Android\android-sdk`, result=True
[D:]:                     ValidateAndroidNdkLocation: ``, result=False
[I:]:                     Looking for Android NDK...
[I:]:                     Looking for Android SDK...
[D:]:                     ValidateAndroidSdkLocation: `C:\Program Files (x86)\Android\android-sdk`, result=True
[D:]:                     ValidateAndroidSdkLocation: `C:\Program Files (x86)\Android\android-sdk`, result=True
[D:]:                     ValidateJavaSdkLocation: `C:\Program Files\Android\Jdk\microsoft_dist_openjdk_1.8.0.25`, result=True
[I:]:                     Tracking android devices started
[D:]:                     Tracking avd started
[D:]:                     avd watcher *.ini path: 'C:\Users\Matt\.android\avd'
[D:]:                     avd watcher: got device list from avd with 0 devices
[D:]:                     TrackDeviceTask got: 
[I:]:                     Got new device list from adb with 0 devices
[I:]:                     Looking for Android SDK...
[D:]:                     ValidateAndroidSdkLocation: `C:\Program Files (x86)\Android\android-sdk`, result=True
[D:]:                     ValidateAndroidSdkLocation: `C:\Program Files (x86)\Android\android-sdk`, result=True
[D:]:                     TrackDeviceTask got: emulator-5554    offline
[I:]:                     Got new device list from adb with 1 devices

编辑:我已经找到了设备日志,得益于当我点击“运行”按钮时,Android设备管理器窗口没有打开并且它打开了ADM时弹出的用户帐户控制窗口。错误的起源显示在日志的相关部分中:

[19-08-10 23:56:44.17] Executing command: "C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe" "-s" "emulator-5554" "shell" "getprop" "emu.uuid"
[19-08-10 23:56:44.21] C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe result: 
StandardError: error: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.
ExitCode: 1

Visual Studio Android模拟器?它是那个只有非常有限的可用图像,曾经被分发的旧版本吗?那么,试试使用Android SDK附带的模拟器如何? - Cheesebaron
@Cheesebaron 我相信这是来自SDK的模拟器,但我不是完全确定。我该如何找出呢?模拟器版本为28.0.25-5395263(HAXM 6.2.0)。 - Matt Gregory
请查看此线程以解决您的问题。似乎与USB调试授权有关。我在上一条评论中给出了链接,帮助您检查所创建的模拟器是否附带Android SDK。 - nevermore
@Saamer 不好意思,是Windows 10。抱歉,我应该在原帖中注明的。 - Matt Gregory
您可以分享更多关于上传时输出的详细信息吗?窗口中是否有更多行呢? - Saamer
显示剩余13条评论
4个回答

1

我解决了它!

我进入了Android SDK管理器并卸载了所有平台和工具。由于某种访问被拒绝的错误,无法卸载“Android SDK Platform 28”,因此我重新启动了电脑,以便释放SDK以进行卸载,但我意识到启动VS以进行卸载会再次锁定它(而且我不想弄清楚启动Android SDK管理器可执行文件而不使用VS),因此我进入了VS安装程序并删除了整个“使用.NET进行移动开发”类别,然后重新安装它。然后我进入了Android SDK管理器并安装了Android模拟器29.0.11,现在它可以工作了。


原来这只是一个临时解决方案。我不得不一遍又一遍地卸载和重新安装Android SDK,因为这个问题一直发生。 - Matt Gregory

1

我也遇到了这个问题,删除设备并创建一个新设备似乎解决了我的问题。我不确定它是否是一个永久性的解决办法,但它解决了我的问题,所以我想分享一下。您可以通过在Android设备管理器中右键单击设备并点击删除来执行此操作。


0

以管理员身份启动Visual Studio解决了我的问题。

VS 2022 17.5.3 Xamarin 17.5.0.173 Xamarin.Android.SDK 13.2.0.0


是的。清理,删除 bin 和 obj 文件夹。重新构建。以管理员身份运行。为了3、4、5天甚至几周,拔光头发。从头开始重复。在互联网和 Stack Overflow 上搜寻。从头开始重复。浪费数月、数年的生命来尝试使一个未经测试、未记录且充满错误的东西运行。无限重复,无尽循环。 - undefined

0

这里是解决方案:

Visual Studio -> 工具 -> 获取工具和功能 -> Visual Studio 安装程序 -> 修改 -> 单个组件 -> 向下滚动至“SDK、库和框架” -> 选择 Android SDK 设置 (API 级别 30) 和 (API 级别 25) -> 修改。

在截图中查看


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接