Surface Duo 仿真器疑难解答提示

请访问 Surface Duo 技术社区,提出问题或讨论你在使用 Surface Duo 仿真器或 SDK 时遇到的任何问题。

下面是一些常见问题及其解答。

Android 12L 模拟器未启动

最新的 Surface Duo Android 12L 仿真器要求 SDK 工具中的 Android 模拟器版本 为 31.3.12 或更高版本, (或更高版本或 32.1.5 或更高版本的 canary 通道) 。

有关如何在 SDK 工具中更新模拟器的详细说明 ,请查看先决条件、下载和安装步骤

Android 11 仿真器未启动

终端输出中可能会出现以下错误:

WARNING | Failed to process .ini file Surface_Duo_2_API_32.avd/config.ini for reading.
ERROR   | bad config: virtual device file has no valid path.rel entry nor path entry

此错误指示 Surface Duo 模拟器与 SDK 工具中的模拟器之间的配置不匹配。 在 Android Studio 中,转到 “工具 > SDK 管理器 > SDK 工具”选项卡 以查看当前版本 (以及是否有任何升级可用) 。 如果 canary 通道中有 31.3.12 或更高版本 (或 32.1.5 或更高版本) 则需要更新 INI 文件,以还原 Surface Duo Android 11 模拟器与 Android SDK 版本之间的兼容性:

  1. 转到路径 ..\SurfaceDuoEmulator_<version>\artifacts\.android\avd\
  2. 编辑文件 Surface_Duo_2_API_32.ini
  3. 将参数 path.rel 更改为 Surface_Duo_2_API_32.avd 旧模拟器的 (,它以前设置为 avd\Surface_Duo_2_API_32.avd)
  4. 保存并重试启动模拟器。

Android 11 模拟器未完成启动

如果 Surface Duo 仿真器在启动时显示黑屏,这可以指示模拟器在从上一次执行加载数据或状态时遇到问题。 若要解决此问题,请关闭模拟器,然后使用 擦除 脚本重新启动模拟器。 脚本位于 Surface Duo 2 模拟器映像安装位置。

警告

如果使用 run_wipe 脚本启动模拟器,则将删除已在模拟器上创建或安装的所有数据和应用。

如果理解并同意擦除所有用户数据,请在 Windows 上使用 ./run_wipe_SurfaceDuo2.bat,或在 macOS 和 Linux 上使用 ./run_wipe_SurfaceDuo2.sh

另一种解决方案是将新模拟器安装在与以前安装的 Surface Duo Android 模拟器不同的文件位置。 可以选择安装位置作为安装过程的一部分。

Surface Duo 模拟器不会在 Android Studio 或 Visual Studio 的设备列表中显示

你的 IDE 无法启动当前版本的 Surface Duo 模拟器。 首先,手动启动模拟器,运行后,部署和调试列表中应该会显示该模拟器:

  • Windows - 从“开始”>“Surface Duo 模拟器”进行选择。
  • Mac - 从命令行使用 ./run_SurfaceDuo2.sh(或者对于 Visual Studio for Mac,使用 ./run_vs_SurfaceDuo2.sh)启动。

启动 Surface Duo 模拟器后,它应作为虚拟设备显示在设备列表中。

Surface Duo 模拟器不显示在 Android 虚拟设备 (AVD) 管理器中

无法在 AVD 管理器中管理当前版本的 Surface Duo 模拟器。 必须从下载页面手动安装并启动它:

  • Windows - 从 “启动 > Surface Duo 模拟器 ”或桌面图标中进行选择(如果它们可用)。
  • Mac - 从命令行使用 ./run_SurfaceDuo2.sh(或者对于 Visual Studio for Mac,使用 ./run_vs_SurfaceDuo2.sh)启动。

不能跨两个屏幕打开应用

应用程序默认只在一个屏幕上打开。 然后,用户可以通过拖动应用窗口底部的句柄,选择跨两个屏幕跨应用程序:

使应用程序跨两个屏幕的三个步骤

默认情况下,客户可以在 “设置”中选择加入在两个屏幕上打开的应用。 若要自动跨度应用,请转到 Surface Duo 功能 > Span 应用 并打开开关。 启用该功能后,可以将单个应用设置为列表中的自动跨度。 如果两个屏幕都为空,则应用将仅在两个屏幕上打开,否则应用将仅在激活应用的屏幕上打开。

显示 Span Apps 自动切换的设置应用

Android 11 及更新版中提供的此功能。

内容不随模拟器一起旋转

验证是否已在通知抽屉中启用“自动旋转”,或通过“设置”>“显示”>“自动旋转屏幕”验证。

如何对 Surface Duo Emulator 执行恢复出厂设置操作

在安装文件夹中,文件名中有 带有擦除 的批处理文件。 使用其中一个脚本启动模拟器时,它将有效地“恢复出厂设置”模拟器。

  • Windows - 在 installation 文件夹内的 artifacts 文件夹中,可以直接执行 run_wipe_SurfaceDuo2.bat(或者对于 Visual Studio,执行 run_vs_wipe_SurfaceDuo2.bat),将 Surface Duo 模拟器映像恢复为原始状态。
  • Mac - 在终端窗口中,导航到你将模拟器文件复制到的文件夹。 然后键入 ./run_wipe_SurfaceDuo2.sh(或对于 Visual Studio for Mac,键入 ./run_vs_wipe_SurfaceDuo2.sh),将 Surface Duo 模拟器映像返回到其原始状态。

这些文件随 2020 年 10 月中旬发布的模拟器版本 2020.1014.2 一起安装。

如果使用的是较旧的版本,且无法立即更新

如果使用的是较早版本,则应下载最新版本或者手动创建一个脚本文件。 启动,方法是将现有的 run_clean(或 run_vs_clean)文件复制到 run_wipe(或 run_vs_wipe)并对其进行修改,如下所示 :

@echo off
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.\
"%DIRNAME%\run.bat" -wipe-data

或者对于 macOS 和 Linux 上的 shell 文件:

#!/bin/sh
./run.sh -wipe-data

更新的批处理/脚本文件应位于用于启动模拟器的现有批处理/脚本文件所在的目录中。 如果要修改 Visual Studio 版本(文件名中包含 _vs),请确保最后一行引用 run_vs.bat 或 run_vs.sh。

Surface Duo 仿真器在中断后无法启动

如果仿真器保存快照期间中断,在后续启动时,它将尝试从已损坏的快照状态启动。 或者,有时在仿真器运行时出现意外问题,尝试启动它会导致错误:"emulator: ERROR: bad workspace: cannot find prebuilt kernel in: ../bin/prebuilts/qemu-kernel/x86_64/kernel-qemu"

在这种情况下,请按照上述步骤执行恢复出厂设置以解决问题并重新启动仿真器。