INSTALL_FAILED_INSUFFICIENT_STORAGE错误是每个Android开发人员的烦恼。这与应用程序大小或可用存储空间大小无关。重新启动目标设备可以短暂地修复问题,但它很快就会回来。人们在留言板上发帖询问为什么会出现这个问题,但令人沮丧的是,谷歌的人对这个问题保持沉默。

有一个简单的变通办法。如果您的测试设备运行的是Android 2.2或更高版本,那么将Android:installLocation属性添加到应用程序的清单文件中,值为“preferExternal”。这将迫使应用程序安装在设备的外部存储设备上,比如手机的SD卡。

例如:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.andrewsmith.android.darkness"
          android:installLocation="preferExternal"

这更像是一种创可贴,而不是补救措施,如果你想要完成的应用程序安装在设备的内部内存中,这可能不太理想。但它至少会让开发过程不那么令人沮丧。


当前回答

模拟器上的一个相关问题是/data分区中没有任何剩余空间。

例如,

% adb shell df

Filesystem             Size   Used   Free   Blksize
/dev                   252M    32K   252M   4096
/mnt/asec              252M     0K   252M   4096
/mnt/obb               252M     0K   252M   4096
/system                154M   154M     0K   4096
/data                   64M    57M     6M   4096
/cache                  64M     1M    62M   4096

下面是/data/app目录的示例视图:

% adb shell ls -l /data/app

-rw-r--r-- system   system      19949 2011-10-12 17:09 CubeLiveWallpapers.apk
-rw-r--r-- system   system      27670 2011-10-12 17:09 GestureBuilder.apk
-rw-r--r-- system   system      34341 2011-10-12 17:09 SoftKeyboard.apk
-rw-r--r-- system   system      20151 2011-10-12 17:09 WidgetPreview.apk

我删除了多余的APK文件。似乎每次安装你都会得到一个新的APK文件。只需删除额外的APK文件。

例如,

adb shell rm /data/app/com.brooklynmarathon.calendarapi2-1.apk

其他回答

我也遇到了同样的问题,我做了一个“工厂数据重置”,在那之后它工作得很好。

处理:

编译为2.1不含android:installLocation="preferExternal"。

OK?

编译为2.2,包括android:installLocation="preferExternal"。

这仍然会安装在SDK版本小于8的版本上(XML标记被忽略)。

三星Galaxy Ace在其规格中宣称有158 MB的内部存储空间,但核心应用程序和服务消耗了大约110 MB的存储空间(我使用设备上的任务管理器来检查这一点)。我的应用是52 MB,因为它有很多资产。当我把其中一些文件删除到45 MB后,应用程序就可以顺利安装了。尽管我只安装了一个应用程序,但设备仍在提醒我内部存储空间快满了,我应该卸载一些应用程序。

在安装了.apk包的发布版本,然后卸载它之后,我的设备显示了99 MB的可用空间,所以可能是调试信息把设备弄得乱七八糟。请看Louis Semprini的回答。

在尝试了这个线程中的所有其他内容之后,我发现我自己的问题是因为到.apk文件的路径太长了。所以我cd到。apk所在的目录,并这样做:

cd /Very/Long/Path/To/Package/
adb install mypackage.apk

而不是

adb install /Very/Long/Path/To/Package/mypackage.apk

这招奏效了……安装得很好。

只是觉得这能帮到别人。

今天,当我用我的手机进行Eclipse测试/调试时,我得到了这个错误。

我的错误是在应用程序名称中使用了挪威特殊字符(“æ”,“ø”,“å”)。当我重构应用程序名称(使用“o”而不是“ø”),应用程序安装正确。

可能不是你的问题,但可以注意到其他人得到同样的错误。