如何增加Android模拟器的存储空间?(INSTALL_FAILED_INSUFFICIENT_STORAGE)


152

我有时(很少)在我的一个项目中得到这个,只有几个班级
Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE

如何增加模拟器的存储空间?


2
即使安装的设备具有足够的存储空间,我也经常会看到此错误。请记住,有时当您看到错误时,错误消息中所说的实际上并不正确。
Lance Nanek 2010年

1
@ Pentinum10我在1.5和2.2上都遇到了相同的错误,请在需要您帮助的地方查看此问题:stackoverflow.com/questions/3584297/…,请帮助我,并抓住我
Paresh Mayani 2010年

Answers:


127

更新资料

在我撰写本文时,这个答案已经有将近八年的历史,并且已经过了五年了。但这仍然是(在我写这篇文章时)“已接受”的答案,因为它在被问到时就回答了这个问题

可在以下位置找到适用于较新的Android Studio工具的较新答案:https : //stackoverflow.com/a/35828035/62这是截屏的绝佳答案。如果您使用的是Android Studio,请忽略以下Eclipse答案。

基于Eclipse的原始答案

我正在寻找该问题的答案,但对上述答案不满意。但后来我找到了答案,所以在这里供以后参考:

总结(并阐明),在Eclipse中,转到“调试配置”。您可以在“调试”图标下的下拉菜单中找到它。选择“目标”,然后选择要启动的首选仿真器目标。然后在“其他仿真器命令行选项”下添加以下内容:

-分区大小1024

然后关闭仿真器(并删除所有设备),然后单击调试图标,这将启动您选择的首选仿真器。这很重要:Eclipse需要启动调试器,而不是AVD。

那为我解决了问题。


8
请注意,“分区大小”以兆字节为单位,通常,要安装APK,您至少需要两倍于APK大小的磁盘空间。
Christopher Orr 2010年

5
另一个需要注意的地方:您必须右键单击要在eclipse中运行的项目->运行->运行配置->选择项目->目标->向下滚动->将-partition-size 1024添加到其他Em选项->然后从eclipse运行项目
SpoiledTechie.com

4
Google应该为Android 3.2或4.0添加一个明确的属性参数。修复该死的Eclipse AVD插件
peter_pilgrim,2011年

很好的发现...实际上应该通过ADT工具进行公开。ICS仿真器默认只有60mb!不能在现成的东西上安装APK。
ddewaele 2012年

1
对于像我一样在几年后看到此公认答案的任何人,您可能都想看看stackoverflow.com/a/35828035/62
Liron Yahdav '18

90

在Android Studio上

打开AVD管理器。

在此处输入图片说明

单击编辑图标以编辑AVD。

在此处输入图片说明

单击显示高级设置。

在此处输入图片说明

根据需要更改内部存储器,Ram,SD卡的大小。单击完成。

在此处输入图片说明

单击是确认弹出窗口。

在此处输入图片说明

清除AVD上的数据,然后单击“是”确认弹出窗口。

在此处输入图片说明

重要提示:增加大小后,如果它没有自动要求您擦除数据,则必须手动打开AVD的下拉菜单,然后选择“擦除数据”来进行擦除。

在此处输入图片说明

现在启动并使用具有更多存储空间的仿真器。


7
在创建AVD之前或之后,更改“内部存储”对我没有任何帮助。它总是带有300MB和空间不足的警告。
特拉维斯·克里斯蒂安

3
更改大小后,是否从AVD管理器的下拉菜单中擦除了数据?
Cijo

1
我已经删除了AVD,但是新配置的未启动图像也发生了这种情况。我在另一个问题中发现,这是某些<23的API的问题。
特拉维斯·克里斯蒂安

OMG-谢谢您!这是我发现可行的唯一解决方案!
SammyK

2
这应该是公认的答案,并且是第一个出现的(不是与Eclipse相关的旧式答案)。更改大小并启动​​仿真器是不够的(即使在使用Cold Boot Now时也是如此)。关键似乎是“ 擦除数据”命令。谢谢!
Alex Vang

42

将以下内容添加到avd config.ini中

disk.dataPartition.size=1024MB

让我知道这是否对您也有用。

我在行中添加了 添加数据分区大小配​​置
增加了AVD存储空间的屏幕截图


在2.3图像上对我不起作用。我仍然只看到128MB的内部存储空间可用于应用程序。
马提亚斯(Matthias)2012年

1
我注意到在AVD Manager的“编辑” UI中,尝试手动设置此值将始终将其重置为0。也许是相关问题?也许不应该在某些版本的Android上设置它?
马提亚斯(Matthias)2012年

2
1024MB使用AVD Manager时,您必须输入一个值。您不能只1024花片刻时间输入Took来弄清楚这一点,我已经证实了这一工作
Ronnie 2012年

19

运行AVD管理器

选择您的AVD,然后单击“详细信息...”按钮。

就我而言,AVD Manager将磁盘大小设置为

disk.dataPartition.size=4000M

尽管指定了数字,该无效值磁盘仍约为500MB。

通过“ AVD详细信息”中的路径转到AVR的文件夹。

在config.ini中将其编辑为

disk.dataPartition.size=4000MB

并删除所有.img文件。


2
这应该是选定的答案。在当前版本的Android Studio(3.0.1)上,如果您正在运行启用了Google Play的AVD,则编辑设置属性将显示为灰色。这工作了。我将测试设备从400M更改为2000MB,删除了所有* .img和* .qcow2文件。清除了AVD上的数据。然后启动它,它有2000 MB的存储空间。
MLindsay

@MLindsay我同意
mwa91

仅供参考,我不必删除* .img或任何其他文件。仅更改config.ini中的值就足够了。
Mohib Sheth,

谢谢!为我的情况工作。
android_dev

10

我正在安装apk:

adb install /home/me/jones_android-arm.apk

我收到一条错误消息,告诉我

/data/local/tmp/jones_android-arm.apk

太大了 使用r15和ADT 15中的sdk工具,我能够使用AVD管理器来操纵一些现有仿真器的设置:

Window-> AVD Manager -> (select you virtual machine) -> Edit

然后转到“皮肤:”下面的“硬件属性”窗口,我可以使用“硬件:新建”按钮“分区的理想大小”进行选择。但是,我无法将其他值设置为“ 0”。毫不畏惧,我进入了$ {HOME} /。android / avd目录。这里有一个“ MyVm.avd”目录。进入该目录,我找到了一个“ config.ini”文件。有条目:

disk.dataPartition.size=0

我将其设置为:

disk.dataPartition.size=1024

..然后返回到AVD Manager,选择MyVm,选择“开始”,选择清除以下对话框中的用户数据,并能够运行和安装。


它的工作最后一次罚款,但今天我不得不写disk.dataPartition.size=1024MB,因为10241024m不工作。
苏菲安

6

avd管理器具有“系统分区的理想大小”选项,请尝试将其设置为1024MB,或使用执行相同操作的命令行启动选项。

仅供参考,我仅在4.0模拟器映像中遇到此问题。


同样在这里。当您这样做时,请确保从干净状态而不是从快照重新启动模拟器。
Manfred Moser

6

只需通过命令行启动仿真器,如下所示:

emulator -avd <your avd name> -partition-size 1024 -wipe-data


3
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.junkfoodian"
android:installLocation="preferExternal"   // this line can work for  Installation error:            //                                             // INSTALL_FAILED_INSUFFICIENT_STORAGE

不确定为什么将其否决-对我有用,所以有赞成票。:)
罗伯特

3

要在Linux中调整Android仿真器的存储大小:

1)安装qemu

2)找到包含虚拟机的img文件的目录。类似于〜/ .android / avd / .avd和cd。

3)调整ext4图像的大小:即从500Mb增长到4Gb时执行

qemu-img resize userdata.img +3.5GB
qemu-img resize userdata-qemu.img +3.5GB

4)增长文件系统:

e2fsck -f userdata.img
resize2fs userdata.img
e2fsck -f userdata-qemu.img
resize2fs userdata-qemu.img

5)对于sd卡映像,可选:抢救数据:

mkdir 1
mount -o loop sdcard.img 1
cp -a 1 2
umount 1

6)将图像大小从100Mb调整为Gb:

qemu-img resize sdcard.img +3.9GB

7)重新生成文件系统:

mkfs.vfat sdcard.img

8)可选:恢复旧数据:

mount -o loop sdcard.img 1
cp -a 2/* 1
mount -o loop sdcard.img 1 

2

我是一个初学者,但是在使用“ Hello Grid View”时遇到了问题。我试图使用自己的照片,这些照片的文件很大。

快速解决方案是减少照片数量,从而减小APK文件的大小。

但是,我想对其他遇到此问题的人来说,我的跟进问题是:如何将JPG和MP3之类的大文件附加到应用程序,并确保将它们保存在SD卡上,从而使APK保持很小?


2
我想我在这里找到了答案: developer.android.com/guide/topics/resources/index.html 尝试对任何大型元素使用“资产”而不是“资源”。在页面上:资源是Android应用程序的组成部分。通常,这些是您要在应用程序中包含和引用的外部元素,例如图像,音频,视频,文本字符串,布局,主题等。每个Android应用程序都包含资源目录(res /)和目录资产(资产/)。


2

在AVD Manager中更新您的设置,并通过启用“擦除用户数据”来启动设备。这对我有用。


1
在新的AVD界面中,右键单击仿真器行,然后在更改内部存储后选择擦除用户数据。
TiagoZortéaDe Conto

1

我猜您应该使用“ emulator -wipe-data -avd YourAvdName”重新启动模拟器,或者在运行配置中检查“ Wipe User Data”(如果使用Eclipse)。

我现在正面临着同样的问题。



0

从表面上看这不是一个适当的答案,但这只是一个小提示。

如果要在应用程序中使用静态文件。您应该将它们作为资源或资产。但是,如果您有内存方面的问题想要将APK保持较小,那么您就需要以以下方式更改应用设计:

您可以在运行App(安装后)时将其作为资源,而不必将其作为资源,而可以从SD卡中获取文件(由于用户可能未保存所需文件,因此文件一定不同)。为此,U可以使用ContentResolver在用户选择时获取音频,图像文件。

借助此功能,您可以为用户提供其他功能,例如他可以自行选择将音频/图像文件加载到应用程序。


0

您可以在Eclipse平台上的AVD管理器对话框中从左侧树“虚拟设备”中选择一项时启动一项,启动UI带有“擦除用户数据”选项


0

以下方法对我有用

  1. 导航到终端窗口中的android SDK / tools文件夹(以防您未为其添加路径)

  2. 确保要清理的虚拟设备已关闭电源。

  3. 运行命令“ ./emulator -wipe-data -avd YourAvdName”,其中YourAvdName是您的虚拟android设备的名称


-2

尝试选择项目->清洁。一个简单的清理可能会修复它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.