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):
等待运行时检查完成
模拟器成功启动,项目构建没有警告或错误。我把它放在这个状态过夜了,但它没能超过这个点。
- 对比:15.7.1
- Xamarin 表单:3.0.0.482510
任何direction/suggestions将不胜感激。
编辑 1:
使用 Android SDK 映像有效,因此问题似乎出在 Hyper-V VM 上。
我按照以下步骤设法修复了这个错误:
- 构建并运行 应用程序。
- 构建将停滞在 "Waiting for Runtime Checks"。
- 在模拟器中,单击右侧工具栏中的
>>
箭头。
- 记下 Windows Phone 模拟器内部开关 .
的 IP 地址
- 回到VS。从菜单 select 工具 → Android → Android ADB 命令提示符
- 类型
adb connect [IP_FROM_STEP_#4]
.
- 构建应继续。
您应该只需要在每次启动模拟器时执行此操作。没有解决VS不自动连接的问题,但我觉得很容易做,以便继续。
附带说明一下,如果应用程序运行并立即退出,请执行以下操作:
- 停止模拟器。
- 打开 Hyper-V 管理器应用程序。
- 右键单击模拟器,然后 select "Settings"。
- 展开"Processor"节点和select"Compatibility".
- 勾选"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 或其组件引起的。简单而永久的解决方案是更改模拟器指向的路径。只需执行以下操作:
- 从“开始”按钮上下文菜单中选择 运行,在对话框中键入 regedit,然后选择“确定”,打开注册表编辑器。
- 导航到左侧文件夹树中的 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Android SDK 工具。
- 修改 Path 注册表变量以匹配您的 Android SDK 的路径。
- 重新启动模拟器,您现在应该能够看到模拟器连接到 ADB 和关联的 Android 工具。
卸载模拟器上的应用程序并重新启动模拟器。
这似乎是为我做的事情。我在 Android 6 模拟器上,使用 HAXM。我还尝试在 xamarin.android > properties > android options
中禁用 Use Shared Runtime
和 Use 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_ROOT
和 ANDROID_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
目录仍然包含我之前安装的旧 adbkey
和 adbkey.pub
文件。
因此,我用 VS 安装的 SDK 替换了它们(在我的例子中位于 C:\Users\<UserName>\.android
)。
(只删除旧文件可能也足够了,但我没有测试过。)
之后,VS 可以再次连接到 AVD。
我在 Pixel 2 Pie 8.1(API 27) 上遇到了同样的问题,我下载了它的更高版本 Pixel 2 Pie 9.0(API 28),所以它已经解决了问题。
我创建了一个新的、基本的 Xamarin 跨平台应用程序,当 运行 使用 Marshmallow (6.0 API 的 VS 模拟器中的 Android 项目时,我收到以下错误23):
等待运行时检查完成
模拟器成功启动,项目构建没有警告或错误。我把它放在这个状态过夜了,但它没能超过这个点。
- 对比:15.7.1
- Xamarin 表单:3.0.0.482510
任何direction/suggestions将不胜感激。
编辑 1: 使用 Android SDK 映像有效,因此问题似乎出在 Hyper-V VM 上。
我按照以下步骤设法修复了这个错误:
- 构建并运行 应用程序。
- 构建将停滞在 "Waiting for Runtime Checks"。
- 在模拟器中,单击右侧工具栏中的
>>
箭头。 - 记下 Windows Phone 模拟器内部开关 . 的 IP 地址
- 回到VS。从菜单 select 工具 → Android → Android ADB 命令提示符
- 类型
adb connect [IP_FROM_STEP_#4]
. - 构建应继续。
您应该只需要在每次启动模拟器时执行此操作。没有解决VS不自动连接的问题,但我觉得很容易做,以便继续。
附带说明一下,如果应用程序运行并立即退出,请执行以下操作:
- 停止模拟器。
- 打开 Hyper-V 管理器应用程序。
- 右键单击模拟器,然后 select "Settings"。
- 展开"Processor"节点和select"Compatibility".
- 勾选"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 或其组件引起的。简单而永久的解决方案是更改模拟器指向的路径。只需执行以下操作:
- 从“开始”按钮上下文菜单中选择 运行,在对话框中键入 regedit,然后选择“确定”,打开注册表编辑器。
- 导航到左侧文件夹树中的 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Android SDK 工具。
- 修改 Path 注册表变量以匹配您的 Android SDK 的路径。
- 重新启动模拟器,您现在应该能够看到模拟器连接到 ADB 和关联的 Android 工具。
卸载模拟器上的应用程序并重新启动模拟器。
这似乎是为我做的事情。我在 Android 6 模拟器上,使用 HAXM。我还尝试在 xamarin.android > properties > android options
中禁用 Use Shared Runtime
和 Use 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_ROOT
和 ANDROID_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
目录仍然包含我之前安装的旧 adbkey
和 adbkey.pub
文件。
因此,我用 VS 安装的 SDK 替换了它们(在我的例子中位于 C:\Users\<UserName>\.android
)。
(只删除旧文件可能也足够了,但我没有测试过。)
之后,VS 可以再次连接到 AVD。
我在 Pixel 2 Pie 8.1(API 27) 上遇到了同样的问题,我下载了它的更高版本 Pixel 2 Pie 9.0(API 28),所以它已经解决了问题。