android - 安卓解决方案INSTALL_FAILED_INSUFFICIENT_STORAGE错误

  显示原文与译文双语对照的内容

INSTALL_FAILED_INSUFFICIENT_STORAGE错误是开发者每一个Android生命周期的祸害。 无论应用程序大小如何,或者有多少可用存储,都会发生。 重新启动目标设备会简单地修复问题,但很快就会恢复。 在 issue, ( 如果不是数千个) 有几百家的留言板询问该问题出现,但为何用户的帖子沮丧的各位在谷歌正在 silent.

有一个简单的解决办法。 如果你的测试设备运行的是 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"

这更像是一个修补,而不是修复,如果你想让你的完成应用安装在设备内存内部,这可能不是理想的选择。 但它至少会使开发过程变得不那么令人沮丧。

时间:

我在应用程序文件清单中添加了一个附加行,它是 android:installLocation="preferExternal" 使用这里线路将应用程序安装到外部存储。 请参阅下面的示例,


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

以下帮助:

  • 打开设备的外壳

     
    adb shell
    
     
  • 导航到首次复制传入的APK的临时目录

     
    cd/data/local/tmp
    
     
  • 列出可用文件并按需要删除

    
    rm *//use at your own risk, good practice to list files first
    
    

在实际的设备上,这对我来说是可靠的。


编辑: 这证明是不那么可靠的解决方案为上面的那个查询。

我尝试了一些解决方案。 没什么真正的帮助。最后我发现了一个叫 SD Maid的应用程序。 这 that 。

它说功能在unrooted设备上受到限制。 于我来说相关我的是含有根路径所以这将是很高兴看见听到这类场景中的人有效的,它是,如果这仅仅是一次意外,那是 worked.

随着 app, 注意: 我没有什么要做,他们 只是找到了一个搜索。

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

比如,


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
...

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

在 Eclipse 中

Run --> Debug Configurations --> Select"target", 选择要启动的首选 模拟器 目标。

然后在"其他 模拟器 命令行 选项,"下面添加:

-partition-size 1024

然后关闭 模拟器 并单击调试 icon,它将启动你选择的首选 模拟器 。

enter image description here

希望它能帮助你 !

...