如何使用命令行和avdmanager创建Android虚拟设备?

46

我无法使用avdmanager命令行创建设备:

$ Android/Sdk/tools/bin/avdmanager create avd --name Nexus6P --tag 11 --package 'system-images;android-23;google_apis;x86_64'
Error: Invalid --tag 11 for the selected package.

$ Android/Sdk/tools/bin/avdmanager create avd --name Nexus6P --package 'system-images;android-23;google_apis;x86_64'
Error: Invalid --tag default for the selected package.

$ Android/Sdk/tools/bin/avdmanager list
Available Android Virtual Devices:
Available devices definitions:
...
---------
id: 11 or "Nexus 6P"
    Name: Nexus 6P
    OEM : Google
---------

有什么想法吗?

5个回答

55

如果你不介意它是 Nexus 6P,那么你可以运行

echo no | Android/Sdk/tools/bin/avdmanager create avd --force --name testAVD --abi google_apis/x86_64 --package 'system-images;android-23;google_apis;x86_64'

1
感谢您的帮助,现在CLI可以工作了:echo no | Android/Sdk/tools/bin/avdmanager create avd --force --name testAVD --abi google_apis/x86_64 --package 'system-images;android-23;google_apis;x86_64'。您能否编辑您的帖子以接受您的答案。 - Guillaume Vincent
3
@Gregriggins36 如果我在意呢? - cur4so
14
通过在avdmanager中添加 --device "Nexus 6P"选项(参见avdmanager create avd -h),可以创建硬件配置文件。但使用当前的25.3.1工具时,它会忽略分辨率。在启动模拟器时传递您的分辨率 emulator @avd_name ..more params here.. -skin 1440x2560 - Sergii Pechenizkyi
1
@franzisk_br 不确定为什么。根据此文档 https://developer.android.com/studio/command-line/avdmanager.html#commands_and_command_options,它应该在 ~/.android/avd/ 中创建 AVD。您可以尝试通过在命令中添加 -p ~/.android/avd 来强制执行。 - Gregriggins36
关于@SergiiPechenizkyi的回答:使用最新的构建工具,这个问题似乎已经解决了。我刚刚通过添加“-d pixel_xl”来创建了一个正确的硬件配置文件和分辨率的Pixel XL模拟器。在我的机器上添加“-skin 1440x2560”没有起作用。 - Delblanco
显示剩余4条评论

23

@Gregriggins36提供的解决方案有效。这是我在Linux(Fedora 27)上使用的详细解决方案:

列出可用的设备定义:

~/Android/Sdk/tools/bin/avdmanager list
...
---------
id: 11 or "Nexus 6P"
    Name: Nexus 6P
    OEM : Google
---------
...

基于设备定义"Nexus 6P"创建虚拟设备

~/Android/Sdk/tools/bin/avdmanager create avd --force --name Nexus6P --abi google_apis/x86_64 --package 'system-images;android-23;google_apis;x86_64' --device "Nexus 6P"

列出可用的虚拟设备

~/Android/Sdk/tools/bin/avdmanager list avd
Name: Nexus6P
Device: Nexus 6P (Google)
Path: /home/guillaume/.android/avd/Nexus6P.avd
Target: Google APIs (Google Inc.)
        Based on: Android 6.0 (Marshmallow) Tag/ABI: google_apis/x86_64

开始模拟我们的新虚拟设备

~/Android/Sdk/tools/emulator -avd Nexus6P -skin 1440x2560

不幸的是,在线文档滞后于实际工具。使用 --help 运行会显示你可以使用的所有标志,包括 -d

$  avdmanager create avd --help

Action "create avd":
  Creates a new Android Virtual Device.
Options:
  -c --sdcard  : Path to a shared SD card image, or size of a new sdcard for
                 the new AVD.
  -g --tag     : The sys-img tag to use for the AVD. The default is to
                 auto-select if the platform has only one tag for its system
                 images.
  -p --path    : Directory where the new AVD will be created.
  -k --package : Package path of the system image for this AVD (e.g.
                 'system-images;android-19;google_apis;x86').
  -n --name    : Name of the new AVD. [required]
  -f --force   : Forces creation (overwrites an existing AVD)
  -b --abi     : The ABI to use for the AVD. The default is to auto-select the
                 ABI if the platform has only one ABI for its system images.
  -d --device  : The optional device definition to use. Can be a device index
                 or id.


使用最新的构建工具,-skin 1440x2560似乎不再起作用。但是,我刚刚通过添加-d pixel_xl来创建了一个正确的硬件配置文件和分辨率的Pixel XL模拟器。 - Delblanco
我在哪里可以找到类似“Nexus 6P”的设备列表? - the_prole

11

注意:与已接受的答案相同,但使用 x86(而不是 x86_64)。

这是在 Mac 上可行的命令。
请注意:

  1. x86x86_64 是不同的 ABI。
  2. 您需要首先使用 sdkmanager 下载系统镜像(可以手动使用 GUI)。

$  avdmanager create avd --force --name testAVD --abi google_apis/x86 --package 'system-images;android-23;google_apis;x86'

Do you wish to create a custom hardware profile? [no] no

$  avdmanager list avd


Name: testAVD
Path: /Users/xj/.android/avd/testAVD.avd
Target: Google APIs (Google Inc.)
      Based on: Android 6.0 (Marshmallow) Tag/ABI: google_apis/x86

0

我正在使用 AS Flamingo

通过 AS 创建 AVD

然后通过命令行启动它

emulator -list-avds emulator -avd Pixel_5_API_29

你需要将所有这些添加到你的 PATH(Windows)中

%USERPROFILE%......;C:\Users\UserName\AppData\Local\Android\Sdk\platform-tools;C:\Users\UserName\AppData\Local\Android\Sdk\emulator;C:\Users\UserName\AppData\Local\Android\Sdk\tools\bin


0

在 macOS 上创建 AVD(Android 虚拟设备)。

您可以在系统上使用 avdmanager 可执行文件的直接路径。

不要在命令中只使用 'avdmanager',而是用 avdmanager 可执行文件的完整路径替换它。例如:

echo "no" |/Users/runner/Library/Android/sdk/cmdline-tools/latest/bin/avdmanager --verbose create avd --force --name "pixel_6_pro" --package "system-images;android-33;google_apis;x86_64" --tag "google_apis" --abi "x86_64" --device "pixel_6_pro"

请确保根据系统上 avdmanager 可执行文件的实际位置调整路径。如果您有任何进一步的问题,请告诉我!


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