Pixel 2模拟器/虚拟设备不在AVD管理器设备列表中

6

问题

只能通过Android Studio(v3.1.4)创建Pixel 2虚拟设备,无法通过avdmanager创建吗?

我们想做什么

使用avdmanager自动创建一个Pixel 2设备(基于avdmanger的持续集成脚本)。我们需要明确地使用Pixel 2设备。

问题

执行$ANDROID_HOME/tools/bin/avdmanager list不返回Pixel 2硬件配置文件,而是返回错误:

Parsing ****
Available Android Virtual Devices:
The following Android Virtual Devices could not be loaded:
    Name: Pixel_2_API_28
    Path: /home/user/.android/avd/Pixel_2_API_28.avd
   Error: Google pixel_2 no longer exists as a device
Available devices definitions:
id: 0 or "tv_1080p"
    Name: Android TV (1080p)
    OEM : Google
    Tag : android-tv

附加细节

我必须执行以下命令才能使用JAVA 10.0.2执行avdmanager命令:export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'。否则,我会收到此处提到的错误:未能安装android-sdk:“java.lang.NoClassDefFoundError:javax/xml/bind/annotation/XmlSchema”

3个回答

3
我能在 com/android/sdklib/devices/nexus.xml 中找到 Pixel 2 的描述,这是 Android Studio 插件使用的。该文件位于 $ANDROID_HOME/plugins/android/lib/sdklib.jar 中。但我还没有找到如何让 avdmanager 加载与 Android Studio 插件使用相同的 sdklib。

顺便说一下:我通过在本地创建所需的 AVD,然后将它们克隆到我的 CI 构建机上来解决了这个问题。也许并不适用于您的使用情况,但对我有效。 - Asyn DE Shown

2

我使用 AndroidSDK/cmdline-tools/latest/bin/avdmanager 解决了这个问题。

enter image description here

旧的AndroidSDK/tools文件夹已过时,不应再使用。


1

要么编辑AVDconfig.ini文件,要么在AVD Manager中更改其模型。

剩下的是:

id: 17 or "pixel"
    Name: Pixel
    OEM : Google
---------
id: 18 or "pixel_c"
    Name: Pixel C
    OEM : Google
---------
id: 19 or "pixel_xl"
    Name: Pixel XL
    OEM : Google

使用Java 10不应有太大差异,但设备定义不再可用。
如果您坚持使用Pixel 2,则可以将设备定义添加到~/.android/devices.xml中。

1
也许我表述不够清楚:我需要使用 Pixel 2 因为我们需要在这个设备上进行测试。此外,必须通过 avdmanager 创建此设备,因为在 CI 环境中没有界面可以通过 Android Studio 创建虚拟设备并正确链接。 - hb0
@hb0 我很难想象,对于 AVD 来说,一些虚拟设备名称会有任何区别(因为它们都是相同的)... 因此,如果屏幕大小匹配,pixel 应该是等效的。你为什么认为他们已经删除了它?当在无头模式下运行时,甚至不会有任何设备框架,因此这是一个完全错误的观念。虽然仍然可以创建自定义设备,如果屏幕大小/ dpi 不同 - 或者只需连接硬件设备。 - Martin Zeitler
抱歉回复晚了:我们有一个使用位置更新的集成测试。这个测试只在类型为“pixel2”的虚拟设备上运行,因为在普通设备上不行。我猜测谷歌增强了这个模拟器上的模拟位置服务,与其他模拟设备配置文件相比。您确定不同配置文件之间的实现不同吗?您能提供一些来源吗?在这种情况下,我无法解释为什么测试只能在像素2模拟器上工作,而不能在具有相同Android API的像素模拟器上工作。 - hb0

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