You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

avdmanager创建的AVDs无法启动,缺失disk.dataPartition.size配置

解决avdmanager自动添加data分区大小参数的问题

我之前也碰到过这个一模一样的坑——用avdmanager创建Android 26/27的Google APIs x86镜像AVD时,因为默认缺失disk.dataPartition.size=800M配置,导致启动时陷入ADB连接断开的死循环。下面是几个能让avdmanager自动完成这个配置的实用方法:

方法1:创建后自动追加配置参数

你可以在avdmanager创建AVD的命令后,直接追加一行修改配置文件的命令,自动补上缺失的参数。

比如针对你给出的AVD名称TEST_1234,可以这样写:

# 先创建AVD
avdmanager create avd -n TEST_1234 -k 'system-images;android-27;google_apis;x86' -d 'Nexus One' -f
# 找到AVD配置文件并添加data分区参数
echo "disk.dataPartition.size=800M" >> ~/.android/avd/TEST_1234.avd/config.ini

注意:如果你的AVD存储路径不是默认的~/.android/avd/,可以通过avdmanager list avd命令查看每个AVD的实际存储路径,替换掉上面的路径即可。

方法2:使用自定义配置模板

你可以先准备一个包含disk.dataPartition.size=800M的模板配置文件,创建AVD时直接指定使用这个模板,一次性搞定所有自定义配置。

  1. 复制一个Android Studio里保存正常的AVD的config.ini作为模板,确保里面已经包含disk.dataPartition.size=800M参数,保存为avd_custom_template.ini;
  2. 创建AVD时用--config参数指定这个模板:
avdmanager create avd -n TEST_1234 -k 'system-images;android-27;google_apis;x86' -d 'Nexus One' -f --config ./avd_custom_template.ini

这个方法的好处是,你还可以在模板里加入其他常用配置(比如屏幕分辨率、内存大小等),不用每次创建都重复设置。

方法3:封装成脚本批量创建

如果需要频繁创建这类AVD,建议把创建和配置的逻辑封装成脚本,用起来更高效。比如写一个bash脚本:

#!/bin/bash
# 脚本参数:第一个是AVD名称,第二个是API版本(比如27)
AVD_NAME=$1
API_LEVEL=$2

# 执行AVD创建命令
avdmanager create avd -n $AVD_NAME -k "system-images;android-$API_LEVEL;google_apis;x86" -d 'Nexus One' -f
# 自动添加data分区参数
echo "disk.dataPartition.size=800M" >> ~/.android/avd/$AVD_NAME.avd/config.ini

echo "AVD $AVD_NAME 创建成功,已自动设置data分区大小为800M"

使用的时候只需要运行:

./create_custom_avd.sh TEST_1234 27

补充说明一下:这个问题本质是Android 26及以上的Google APIs镜像对data分区的最小容量有要求,而avdmanager默认没有设置足够的大小,手动添加800M刚好能满足启动需求。

内容的提问来源于stack exchange,提问作者user1243584

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:49:38