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"

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


当前回答

我的手机没有root权限,也没有准备好把我的应用程序安装在SD卡上。/data/上有15 MB的可用空间,而我的应用程序不足2 MB。

有一段时间我还过得去;清理Eclipse项目并重新启动手机,但最终停止工作(可能是在更新之后)。

清理我的应用程序缓存为我解决了这个问题,不需要重新启动手机或卸载应用程序。

市场上有一些应用程序可以一次性清除多个应用程序的缓存。搜索“干净”。

其他回答

我已经解决了这个问题,包括android:installLocation="auto"内<manifest>标签在AndroidManifest.xml文件。

当我尝试在完整的ROM更新后使用ADB shell在SD卡目录中批量安装大约50个应用程序时,我遇到了同样的错误:

for x in *.apk; do pm install -r $x; done

其中一些已经安装,但许多都失败了,出现了INSTALL_FAILED_INSUFFICIENT_STORAGE错误。所有失败的应用程序名称中都有空格。我批量重命名它们,并再次尝试。这次一切都成功了。我没做重启什么的。也许这不是你们面临的问题,但这可能会帮助那些和我面临同样问题的人。

我已经添加了一个额外的行到应用程序的清单文件,这是android:installLocation="preferExternal"。通过使用这一行,它强制将应用程序安装到外部存储。请看下面的例子,

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.nasir.phonegap"
    android:installLocation="preferExternal" >

模拟器解决方案

打开你的。android目录。通常在您的主目录中。然后转到avd,然后打开包含您想要更改的avd名称的目录。

现在编辑config.ini文件并添加以下行或修改以下行:

disk.dataPartition.size=1024

其中1024是您想要使用的MB大小。保存文件,然后启动模拟器,选中擦除用户数据。您的模拟器现在应该具有新的大小。

模拟器上的一个相关问题是/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