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

224
我偶尔会在我的某个项目中遇到以下错误(仅限于几个类):
Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE

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


2
我经常看到这个错误,即使被安装的设备有足够的存储空间。只要记住,有时候当你看到这个错误时,错误信息所说的并不是真实情况。 - Lance Nanek
1
@Pentinum10,我在1.5和2.2上都遇到了同样的错误,请查看这个问题,需要你的帮助:https://dev59.com/pFDTa4cB1Zd3GeqPGBTZ,请帮帮我,谢谢。 - Paresh Mayani
24个回答

4

您需要增加模拟器的虚拟内存。

如何增加模拟器的虚拟内存

emulator -avd "模拟器名称" -partition-size 2024

之后再尝试安装您的apk。


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

不确定为什么这被投票否决了——对我有用,所以给你点赞 :) - Robert

2
我是一名初学者,但在玩“Hello GridView”时遇到了这个问题。我试图使用自己的照片,但它们的文件大小都非常大。
快速解决方法是减少照片数量,从而减小APK文件的大小。
但是,我想问其他人的后续问题是:如何将像JPG和MP3这样的大文件附加到应用程序并确保它们保存在SD卡上,以使APK保持较小?

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

2

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


1
在新的AVD界面中,右键单击模拟器行,然后在更改内部存储后选择擦除用户数据。 - Tiago

1
我猜你应该使用“emulator -wipe-data -avd YourAvdName”重启模拟器,或者如果你在使用Eclipse的话,在运行配置中勾选“Wipe User Data”。

0

我正在使用VSCode,我的AVD设置来自我已经有一段时间没有使用的旧版Android Studio设置。

我能够通过找到AVD镜像所在的位置,然后搜索包含文本的文件来解决这个问题。

disk.dataPartition.size

运行以下命令:find . -name "avd*"grep "disk" *一旦找到AVD目录。
hardware-qemu.ini文件中修改disk.dataPartition.size的值对我有用。

0
编辑位于{name}.avd文件夹下的config.ini。在Windows系统中,路径类似于C:\Users\{user}\.android\avd\Pixel_3a_API_34_extension_level_7_x86_64.avd\config.ini
然后进行以下更改,
disk.dataPartition.size = 8GB

致,
disk.dataPartition.size = 20GB

最后,通过清除现有用户数据来重新启动模拟器。
emulator.exe -avd Pixel_3a_API_34_extension_level_7_x86_64 -wipe-data

如果您想要重复使用数据,请不要在之后擦除它。

0
我曾经看到过这种情况发生,那时主机文件系统基本上已经没有空间了。您在存储虚拟机文件系统的文件系统中有足够的可用空间吗?

我在我的硬盘上有足够的空间,剩余13GB。 - Pentium10

0

这绝对不是一个恰当的答案,但它是一个小提示。

如果您想在应用程序中使用静态文件,您应该将它们作为资源或资产放置。 但是,如果您有内存问题,例如希望保持APK小,则需要更改应用程序设计方式,

而不是将它们作为资源放置,而是在运行应用程序(安装后)时从SD卡中获取文件(因为用户可能没有你需要的文件)。为此,您可以使用ContentResolver在用户选择时获取音频、图像文件等。

通过这种方式,您可以让用户获得另一个功能,即根据自己的选择加载音频/图像文件到应用程序中。


0

在 Eclipse 平台的 AVD 管理器对话框中,从左侧树形菜单“虚拟设备”中选择一个项目后,您可以启动该项目。启动界面上有“擦除用户数据”的选项。


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