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"

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


当前回答

处理:

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

OK?

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

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

其他回答

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

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

在我的情况下,失败是由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设备上受到限制。我的工作是根深蒂固的,所以很高兴看到人们在这些情况下是有效的,如果它对我有效只是一个侥幸(无论如何这是一个不可预测的问题)。

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

您需要增加Android模拟器的内存容量。有两种方法:

Right click the root of your Android Project, go to "Run As" and then go to "Run Configurations...". Locate the "Android Application" node in the tree at the left, and then select your project and go to the "Target" tab on the right side of the window look down for the "Additional Emulator Command Line Options" field (sometimes you'll need to make the window larger) and finally paste "-partition-size 1024" there. Click Apply and then Run to use your emulator. Go to Eclipse's Preferences, and then select “Launch” Add “-partition-size 1024” on the “Default emulator option” field. Click “Apply” and use your emulator as usual.