我有时(不经常)在我的一个项目中遇到这种情况,只有几节课 安装错误:INSTALL_FAILED_INSUFFICIENT_STORAGE

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


我唯一一次看到这种情况发生是在主机文件系统基本上没有空间的时候。虚拟机文件系统所在的文件系统上是否有足够的空闲空间?


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

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

但是,我想我接下来要问的问题是:我如何将像jpg和mp3这样的大文件附加到应用程序中,并确保它们保存在SD卡上,从而使APK保持较小?


android 1.5出现了这个问题。尝试2.0或2.1或2.2


这显然不是一个恰当的答案,但它是一个小小的暗示。

如果你想在你的应用程序中使用静态文件。你应该把它们作为资源或资产。 但是,如果你有内存问题,比如让你的APK保持小,那么你需要改变你的应用程序设计,

而不是把它们作为资源,在运行你的应用程序(安装后),你可以从SD卡上获取文件(防御不同的文件,因为用户可能不会保留你需要的文件)。为此U可以使用ContentResolver采取音频,图像文件上的用户选择。

这样你就可以给用户另一个功能,比如他可以自己选择加载音频/图像文件到应用程序中。


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


在eclipse平台上的AVD管理器对话框中,你可以在左边的“虚拟设备”树中选择一个项目时启动它,启动UI中有“擦除用户数据”选项。


下面的方法对我很有效

在终端窗口中导航到android SDK/tools文件夹(如果你没有为它添加路径) 确保计划清理的虚拟设备已关闭电源。 执行“”命令。/emulator -wipe-data -avd YourAvdName",其中YourAvdName是你的虚拟android设备的名称


更新

在我写这篇文章的时候,这个答案已经有将近8年了,已经过时了大约5年。但它仍然(在我写这篇文章的时候)是“公认的”答案,因为它在被问到的时候就回答了这个问题。

更新的答案,适用于更新的Android Studio工具,可以在这里找到:https://stackoverflow.com/a/35828035/62—这是一个很棒的屏幕截图。如果您正在使用Android Studio,请忽略下面的Eclipse回答。

原始的基于eclipse的答案

我一直在寻找这个问题的答案,对上面的答案并不满意。但后来我找到了答案,所以在这里,以供将来参考:

为了总结(并澄清),在Eclipse中,请转到“调试配置”。你可以在“调试”图标下的下拉菜单中找到它。选择“目标”,并选择一个首选的模拟器目标来启动。然后在“附加模拟器命令行选项”下添加以下内容:

分区大小1024

然后关闭模拟器(并删除任何设备),然后单击调试图标,这将启动您选择的首选模拟器。这一点很重要:Eclipse需要启动调试器,而不是AVD。

这为我解决了问题。


尝试选择项目->清洁。一个简单的清洁就可以把它修好。


avd管理器有一个选项“理想大小的系统分区”,尝试设置为1024MB,或使用命令行启动选项,做同样的事情。

供参考,我只在4.0模拟器图像中遇到过这个问题。


我正在安装一个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}/。安卓/ avd目录 有一个‘MyVm’。avd的目录。进入那个目录,我找到了config。ini 文件。有这样一段:

disk.dataPartition.size=0

我把它设置为:

disk.dataPartition.size=1024

. .然后回到AVD管理器,选择MyVm,选择“开始”,选择 擦除用户数据赢得下面的对话框,并能够运行和安装。


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

disk.dataPartition.size=1024MB

如果这也适用于你,请告诉我。

我在这一行加了一句


<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

通过命令行启动模拟器,如下所示:

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

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

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

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

然后尝试安装你的apk


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


在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 

Android Studio

打开AVD管理器。

单击“编辑图标”编辑AVD。

单击“显示高级设置”。

根据需要更改内部存储,Ram, SD卡大小。 单击Finish。

单击yes确认弹出窗口。

擦拭AVD上的数据,单击“是”确认弹出窗口。

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

现在启动并使用存储容量增加的模拟器。


运行AVD管理器

选择您的AVD并点击“详细信息…”按钮。

在我的情况下,AVD管理器设置磁盘大小为

disk.dataPartition.size=4000M

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

在“AVD details”中按路径进入AVR的文件夹。

在config.ini中编辑它

disk.dataPartition.size=4000MB

并删除所有。img文件。


我使用VSCode和我的AVD设置是从一个旧的Android工作室设置,我没有使用一段时间。

我能够通过找到AVD图像所在的位置,然后搜索具有文本的文件来修复这个问题

disk.dataPartition.size

运行查找。name "avd*"和一个grep "disk" *,一旦你找到了avd的目录。

修改hardware-qemu.ini文件中的disk. datappartition .size值对我有用。


这个问题可以通过改变模拟器的分区大小来解决。

转到您的\Android\Sdk\emulator路径,并键入以下命令。

emulator -avd android_emulator_name -partition-size 1500 -wipe-data

现在它将工作,您已经增加了分区大小。 您可以在运行上述命令之前和之后使用以下命令观察大小的变化。

adb shell df

如果你有M1 Mac和Android模拟器的预览版本,那么你需要进入/Applications/Android模拟器.app/Contents/MacOS/api30-gphone-arm64-v8a/config.ini(例如),并将disk. datappartition .size属性更改为你想要的大小。

就像这样:

参考是在GitHub回购。

致以最亲切的问候。


我使用bitrise,我通过在AVD步骤中传递参数'-partition-size 2047'来增加内部空间(只有当你使用cli时)

例子:

/home/user/Android/Sdk/emulator/emulator "@Pixel_6_API_31" "-verbose" "-show-kernel" "-no-audio" "-netdelay" "none" "-no-snapshot" "-wipe-data" "-gpu" "auto" "-no-window" "-no-boot-anim" "-camera-back" "none" "-camera-front" "none" "-partition-size" "2047"