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"

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


当前回答

在我的情况下,失败是由com.android.providers.media应用程序引起的。我在x86 android模拟器上遇到了这个问题。我做了什么:

$ adb shell df
Filesystem             Size   Used   Free   Blksize
...
/data                  224M   209M    14M   4096
....

/data上的可用空间过低

$ adb shell du /data
...
409870  /data/data/com.android.providers.media
...

几乎所有的消费都来自于一个应用!它是系统应用程序,所以我认为最好不要删除它。相反,我清理了应用程序数据。

$ adb shell pm clear com.android.providers.media
Success
$ adb shell df
Filesystem             Size   Used   Free   Blksize
...
/data                  224M     8M   215M   4096
...

磁盘已被清除,应用程序安装成功。

其他回答

以下方法会有所帮助:

打开设备的外壳 亚行壳 导航到第一次复制传入APK的临时目录 cd /数据/地方/ tmp 列出可用的文件并根据需要删除 Rm * //使用风险自负,最好先列出文件

到目前为止,这对我来说在实际设备上是可靠的。


编辑:事实证明,这个解决方案不像上面的解决方案那么可靠。

我尝试了很多方法。没有什么真的有用。最后我找到了一个叫SD Maid的应用程序。帮助。

该公司表示,该功能在非root设备上受到限制。我的工作是根深蒂固的,所以很高兴看到人们在这些情况下是有效的,如果它对我有效只是一个侥幸(无论如何这是一个不可预测的问题)。

注意:我和这个应用程序没有任何关系,只是通过搜索找到的。

我遇到这个问题是因为我使用Sideload Wonder Machine在我的实际手机上安装应用程序时遇到了这个错误。我发现问题是在/payload目录中有多个.apk文件。我认为这是支持的东西,但当我删除了所有的。apk,只有一个,错误消失了。

处理:

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

OK?

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

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

只需从模拟器中从命令行卸载应用程序,或者进入设置并卸载应用程序。这将阻止错误的发生。

如果您在模拟器上运行应用程序,如果此问题仍然存在,请检查通知管理器。如果它显示一个图标,并通知“手机内存已满”,这意味着您已经在模拟器上安装了如此多的应用程序。从“设置>>管理应用程序>>选择应用程序>>卸载”中卸载当前不需要的多个应用程序。 这集。 现在重新运行程序。