Android 4.4虚拟设备内部存储不会调整大小

Som*_*e13 45 android emulation android-virtual-device android-emulator internal-storage

使用AVD Manager创建新的Android 4.4虚拟设备时,我无法使内部存储大于200MB.

512MB是我想设置的内部存储大小.

我试过了:

  • 将AVD Manager中设备的内部存储设置为512MB.
  • 在Eclipse项目Debug Configurations中,在Target选项卡下,将Additional Emulator Command Line Options设置为-partition-size 512.
  • 在Eclipse Preferences中,在Android下,我将Default模拟器选项设置为-partition-size 512.
  • 在(用户)/ .android/avd /(设备).avd/config.ini下编辑我的虚拟设备的配置文件
    • 然后将disk.dataPartition.size设置为disk.dataPartition.size = 512M
    • 还尝试将其设置为disk.dataPartition.size = 512MB
    • 还尝试将其设置为data.dataPartition.size = 512M

这种情况发生在ARM和Intel Atom x86 CPU上.

现在,当我切换到Android 3.0(ARM)时,我可以简单地使用AVD Manager来调整它的内容.Android 4.4有问题吗?我错过了什么吗?或者可能的解决方法?

Fro*_*zie 54

现在模拟器文件系统是ext4,我能够重新调整userdata.img使用标准Linux工具的大小.

# Navigate to AVD
cd ~/.android/avd/Nexus5
# Delete old image
rm userdata-qemu.*
# Re-size the image
resize2fs userdata.img 512M
# Start the emulator and enjoy
emulator @Nexus5
Run Code Online (Sandbox Code Playgroud)

编辑 我也可以userdata-qemu.img直接重新调整大小,但我必须先运行e2fsck.

 e2fsck -f userdata-qemu.img
 resize2fs userdata-qemu.img 512M
Run Code Online (Sandbox Code Playgroud)

  • 在Mac OS X上,您可以在使用自制软件包管理器安装这些工具时使用`brew install e2fsprogs`.因为默认情况下它们没有符号链接到`/ usr/local`,所以你应该使用它们的完整路径来运行它们,例如`/ usr/local/Cellar/e2fsprogs/1.42.9/sbin/resize2fs`. (12认同)
  • Cygwin有一个e2fsprogs软件包.也许有一个MinGW端口. (2认同)
  • 我使用上面提到的命令,但现在我的模拟器不会启动:( (2认同)
  • 这个,结合下面的tune2fs答案工作,然后让我的模拟器再次启动! (2认同)

Ale*_*kov 29

即使上面的建议可以导致Android模拟器挂在启动徽标上.原因是resize2fs执行的修改通常是正确的,但被android认为是破坏的fs并阻止它以rw模式挂载,这会挂起启动过程.

Examening启动日志显示类似的东西:

EXT4-fs error (device mtdblock1): ext4_mb_generate_buddy:741: group 2, 32366 clusters in bitmap, 32370 in gd
Run Code Online (Sandbox Code Playgroud)

事件e2fsck没有为Android修复它并解决它我使用tune2fs改变android应该如何继续挂载破坏的fs的方式.

tune2fs -e continue userdata-qemu.img
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这与上面接受的答案相结合对我有用! (2认同)

小智 5

有人13,这绝对是目标中的一个Bug:"Android 4.4.2 - API Level 19"

我有同样的问题 - 不能在Android SDK的模拟器中更改设备内部存储的大小(即使在config.ini中使用"disk.dataPartition.size = xxxM"或使用命令提示参数" - 分区大小xxx")在Android SDK的模拟器中使用Android 4.4.2.

唯一的方法是在使用Target时设置自定义大小:Android 3.0 - API Level 11.

我的硬件:Windows 7 Ultimate SP1,RAM 4GB; Core Duo 2.28GHz; GT630