我创建了一个新的、裸露的 Xamarin 跨平台应用程序,在使用棉花糖 (6.0 API 23) 在 VS 模拟器中运行 Android 项目时出现以下错误:
等待运行时检查完成
模拟器成功启动,项目生成时没有警告或错误。我已经让它在这种状态下过夜,但它未能通过这一点。
- VS:15.7.1
- Xamarin 形式:3.0.0.482510
任何方向/建议将不胜感激。
编辑 1: 使用Android SDK映像有效,因此问题似乎出在Hyper-V VM上。
您需要重新启动 ADB 服务。Visual Studio-Service-Android-restart adb service. 它对我有帮助。
在 Visual Studio 中,从菜单栏:Tools -> Android -> Restart Adb Server
我设法按照以下步骤修复了此错误:
- 构建并运行应用程序。
- 构建将在"等待运行时检查"处停止。
- 在模拟器中,单击右侧工具栏中的
>>
箭头。 - 记下Windows Phone 仿真器内部交换机的 IP 地址。
- 回到VS。从菜单中选择安卓→安卓ADB命令提示符→工具
- 键入
adb connect [IP_FROM_STEP_#4]
. - 构建应继续。
您只需在每次启动模拟器时执行此操作。它没有解决VS无法自动连接的问题,但是我发现为了继续下去,这很容易做到。
作为旁注,如果应用程序运行并立即退出,请执行以下操作:
- 停止模拟器。
- 打开 Hyper-V 管理器应用程序。
- 右键单击模拟器并选择"设置"。
- 展开"处理器"节点,然后选择"兼容性"。
- 勾选"迁移到具有不同处理器版本的物理计算机"。
查看@masound提供的链接后,我发现注册表项丢失了。因此,我做了以下操作:
- 在
HKEY_LOCAL_MACHINESOFTWAREWow6432Node
中添加了"安卓SDK工具"键。 - 添加了名称为
Path
和值C:Program Files (x86)Androidandroid-sdk
的字符串值。
我遇到了同样的问题。 花了几个小时试图修复它。 尝试了上面的所有答案都无济于事。 打开Android设备管理器并在我的所有模拟器上恢复出厂设置。 它解决了问题。
在此链接中,有一些针对 VS 安卓模拟器的问题修复。其中之一是关于 adb 无法连接到模拟器的问题。这是由模拟器指向的 adb 路径与 Visual Studio 使用的 adb 真实路径之间的差异引起的。此冲突可能是由更新 Visual Studio 或其组件引起的。简单而永久的解决方案是更改模拟器指向的路径。只需执行以下操作:
- 打开注册表编辑器,方法是从"开始"按钮上下文菜单中选择"运行",在对话框中键入 regedit,然后选择"确定"。
- 导航到左侧文件夹树中的HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Android SDK Tools。
- 修改 Path 注册表变量以匹配 Android SDK 的路径。
- 重新启动模拟器,您现在应该能够看到连接到 ADB 和关联的 Android 工具的模拟器。
我遇到了这个。已重新启动计算机和设备。现在一切都好了。
卸载模拟器上的应用,然后重新启动模拟器。
这似乎是为我做这件事的事情。我使用的是带有HAXM的Android 6模拟器。我还尝试在xamarin.android > properties > android options
中禁用Use Shared Runtime
和Use Fast Deployment (debug mode only)
,这在过去可能会有所帮助,但我认为这次没有帮助。...它也可能是重新启动我的计算机七次,然后打开Hyper-V,然后通过windows features
关闭,但谁知道呢。
所以就我而言,在Visual Studio安装自己的之前,我使用了另一个Android SDK安装。我还将ANDROID_SDK_ROOT
和ANDROID_SDK_HOME
环境变量设置为不同的文件夹。
为了解决这个问题,我首先将ANDROID_SDK_ROOT
环境变量更改为使用 VS 配置的路径(VS 安装的 Android SDK 所在的位置,请参阅Tools -> Options -> Xamarin -> Android Settings -> Android SDK Location
),这在我的情况下C:Program Files (x86)Androidandroid-sdk
。之后需要重新启动 VS,因此它会加载新的环境变量值。
仅凭这一点还不足以让VS通过ADB成功连接到AVD。原因是,我的ANDROID_SDK_HOME
路径下的.android
目录仍然包含我以前安装的旧adbkey
和adbkey.pub
文件。 因此,我将它们替换为VS安装的SDK中的SDK(在我的情况下位于C:Users<UserName>.android
)。 (只是删除旧文件可能也足够了,但我还没有测试过它。
之后,VS能够再次连接到AVD。
我在使用 Pixel 2 Pie8.1(API 27)时遇到了同样的问题,我下载了它的更高版本,Pixel 2 Pie 9.0(API 28),所以它解决了这个问题。