Xamarin "Waiting for runtime checks to complete" 和 VS 模拟器

Xamarin "Waiting for runtime checks to complete" and VS Emulator

我创建了一个新的、基本的 Xamarin 跨平台应用程序,当 运行 使用 Marshmallow (6.0 API 的 VS 模拟器中的 Android 项目时,我收到以下错误23):

等待运行时检查完成

模拟器成功启动,项目构建没有警告或错误。我把它放在这个状态过夜了,但它没能超过这个点。

任何direction/suggestions将不胜感激。

编辑 1: 使用 Android SDK 映像有效,因此问题似乎出在 Hyper-V VM 上。

我按照以下步骤设法修复了这个错误:

  1. 构建并运行 应用程序。
  2. 构建将停滞在 "Waiting for Runtime Checks"。
  3. 在模拟器中,单击右侧工具栏中的 >> 箭头。
  4. 记下 Windows Phone 模拟器内部开关 .
  5. 的 IP 地址
  6. 回到VS。从菜单 select 工具 → Android → Android ADB 命令提示符
  7. 类型 adb connect [IP_FROM_STEP_#4].
  8. 构建应继续。

您应该只需要在每次启动模拟器时执行此操作。没有解决VS不自动连接的问题,但我觉得很容易做,以便继续。

附带说明一下,如果应用程序运行并立即退出,请执行以下操作:

  1. 停止模拟器。
  2. 打开 Hyper-V 管理器应用程序。
  3. 右键单击模拟器,然后 select "Settings"。
  4. 展开"Processor"节点和select"Compatibility".
  5. 勾选"Migrate to physical computer with different processor version".

查看@masound 提供的link后,我发现注册表项丢失了。所以,我做了以下事情:

  • 将 "Android SDK Tools" 键添加到 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
  • 添加了一个字符串值,名称为 Path,值为 C:\Program Files (x86)\Android\android-sdk

this link 中修复了 VS android 模拟器的一些问题。其中之一是关于adb无法连接到模拟器的问题。这是由于模拟器指向的 adb 路径与 visual studio 使用的 adb 的真实路径之间的差异造成的。此冲突可能是由更新 visual studio 或其组件引起的。简单而永久的解决方案是更改模拟器指向的路径。只需执行以下操作:

  1. 从“开始”按钮上下文菜单中选择 运行,在对话框中键入 regedit,然后选择“确定”,打开注册表编辑器。
  2. 导航到左侧文件夹树中的 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Android SDK 工具。
  3. 修改 Path 注册表变量以匹配您的 Android SDK 的路径。
  4. 重新启动模拟器,您现在应该能够看到模拟器连接到 ADB 和关联的 Android 工具。

卸载模拟器上的应用程序并重新启动模拟器。

这似乎是为我做的事情。我在 Android 6 模拟器上,使用 HAXM。我还尝试在 xamarin.android > properties > android options 中禁用 Use Shared RuntimeUse Fast Deployment (debug mode only),这在过去可能有所帮助,但我认为这次没有帮助。 ...它也可能会重新启动我的计算机七次,然后通过 windows features 打开和关闭 hyper-v,但谁知道呢。

我运行进入这个。重新启动机器和设备。现在一切都好。

您需要重新启动 ADB 服务。 Visual Studio-服务-Android-重启adb服务。 它对我有帮助。

在菜单栏的 Visual Studio 中:Tools -> Android -> Restart Adb Server

我遇到了同样的问题。花了几个小时试图修复它。尝试了以上所有答案均无济于事。打开 Android 设备管理器并在我所有的模拟器上恢复出厂设置。它解决了问题。

因此,就我而言,在 Visual Studio 安装自己的 SDK 之前,我使用了另一个 Android SDK 安装。我还为不同的文件夹设置了 ANDROID_SDK_ROOTANDROID_SDK_HOME 环境变量。

为了解决这个问题,我先把ANDROID_SDK_ROOT环境变量改成VS配置的路径(VS安装AndroidSDK的地方,见Tools -> Options -> Xamarin -> Android Settings -> Android SDK Location),在我的例子中是 C:\Program Files (x86)\Android\android-sdk。之后需要重新启动 VS,因此它会加载新的环境变量值。

仅此还不足以让 VS 通过 ADB 成功连接到 AVD。原因是,我的 ANDROID_SDK_HOME 路径下的 .android 目录仍然包含我之前安装的旧 adbkeyadbkey.pub 文件。 因此,我用 VS 安装的 SDK 替换了它们(在我的例子中位于 C:\Users\<UserName>\.android)。 (只删除旧文件可能也足够了,但我没有测试过。)

之后,VS 可以再次连接到 AVD。

我在 Pixel 2 Pie 8.1(API 27) 上遇到了同样的问题,我下载了它的更高版本 Pixel 2 Pie 9.0(API 28),所以它已经解决了问题。