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

oalqel3c  于 2023-06-20  发布在  Android
关注(0)|答案(4)|浏览(124)

我无法使用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
---------

你知道吗?

shstlldc

shstlldc1#

如果你不在乎它是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'
jdzmm42g

jdzmm42g2#

来自@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
遗憾的是,online documentation落后于实际工具。运行--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.
mlnl4t2r

mlnl4t2r3#

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

这是我在Mac上使用的命令。
注意事项:

  1. x86和x86_64是不同的ABI。
    1.您需要首先使用sdkmanager下载system_image(使用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
busg9geu

busg9geu4#

我用的是火烈鸟
通过AS创建AVD
然后通过命令行启动它
emulator -list-avds emulator -avd Pixel_5_API_29
你需要在你的PATH中包含所有这些(Windows)
%USERPROFILE%...... C:\UserName\AppData\Local\Android\Sdk\platform-tools; C:\UserName\AppData\Local\Android\Sdk\emulator; C:\Users\UserName\AppData\Local\Android\Sdk\tools\bin

相关问题