Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE

本文介绍了当遇到ANDROID模拟器启动失败,特别是在Eclipse中显示“INSTALL_FAILED_INSUFFICIENT_STORAGE”错误时的解决办法。主要原因是APK文件过大导致存储空间不足。文中提供了两种解决方案:一是彻底卸载并重新安装;二是通过调整模拟器的内存分配来解决。

---------------------------------------华丽的分割线-----------------------------------------

 

 

现象运行程序,进行安装时,ANDROID模拟器启动失败,在Eclipse的控制台里log显示如下错误信息

 

    Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
    Please check logcat output for more details.
    Launch canceled!

 

原因:APK太大,空间不够用,或内存不足。

 

解决

 

1. 

 

“反复安装android apk的时候,有时可能会遇到,可能是以前没有执行uninstall或者uninstall应用的时候,没有做彻底,只是简单的rm /data/app/下面的apk文件,补救的办法如下:
启动模拟器,然后进入菜单
settings->applications->mange
applications-> select the application->select "unistall".

这样就能彻底删除,然后再重新安装这个apk就没问题了缺点是每次执行都要删除一次。 

 

2.

 

通用的方法,在DDMS中调整emulator内存大小:

Eclipse的菜单栏中选择 “Run”,选择“Run Configurations...”或“Debug Configurations...”,找“Target”选项卡,在最下方(发现没有不要急,把窗口下边框往下拉一拉,就能看见被掩盖的)“Additional Emulator Command Line Options”,填上

 

-partition-size 128

 

表示內存大小为128M。如图

 



 

1:ERROR_NO_USB:未检测到USB设备 2:ERROR_NO_UPDATE_PACKAGE:未找到升级包文件 3:ERROR_BATTERY_LOW:电池电量不足(低于安全阈值) 4:ERROR_STORAGE_INSUFFICIENT:存储空间不足 5:ERROR_TASK_ALREADY_RUNNING:系统已有升级任务在进行中 6:ERROR_FILE_COPY_FAILED:升级包文件复制失败 7:ERROR_PACKAGE_DECOMPRESSION_FAILED:升级包解压失败 8:ERROR_USER_CANCELLED:用户手动取消升级操作 9:ERROR_UNEXPECTED_EXCEPTION:未预期的系统异常 10:ERROR_USB_DISCONNECTED:升级过程中USB设备被拔出 11:ERROR_VEHICLE_NOT_IN_PARK:车辆未处于P档(驻车状态) 12:ERROR_BATTERY_CRITICAL:电池电量极低(接近关机阈值) 13:ERROR_FILE_CHECKSUM_FAILED:文件校验失败(完整性校验不通过) 14:ERROR_DECRYPTION_OR_SIGNATURE_FAILED:文件解密失败或签名验证失败 15:ERROR_UNKNOWN:未知错误 */ @Override public void onResult(int resultCode, String message) { Logger.i("USBOfflineUpdater", "resultCode: " + resultCode + " message:" + message); Logger.i("USBOfflineUpdater", "resultCode: " + resultCode + " message:" + message); //0909zwx-功能性开发-回滚UI //情况1:更新成功时,显示成功页面,图标为绿色的圈+√ if (resultCode == USBOfflineUpdater.SUCCESS){ binding.getRoot().post(() -> handleUpdateResult(resultCode)); } //情况2:出现:1-15状态时,更新系统会首先执行回滚并且show 回滚的页面,而后弹出致使回滚的原因和回滚的结果 // 回滚UI显示-回滚结果UI显示 binding.getRoot().post(() -> { uiWhenRollback(resultCode); handleUpdateResult(resultCode); }); } }; 重新总结注释
最新发布
09-10
代码概述 你提供的是一个 Android 项目中用于处理系统升级结果的回调方法 `onResult`,它根据不同的 `resultCode` 执行对应的 UI 操作。目前代码中已有一些注释,但结构不够清晰,信息重复,缺乏对关键逻辑的说明。 代码解析 以下是结构清晰、逻辑分明的**完整注释版本**,便于理解和维护: ```java /** * 更新任务执行完成后的回调方法 * @param resultCode 结果码,用于标识更新操作的最终状态 * @param message 可选的附加信息(当前未使用) */ @Override public void onResult(int resultCode, String message) { // 打印日志信息,用于调试和追踪更新过程 Logger.i("USBOfflineUpdater", "resultCode: " + resultCode + " message:" + message); Logger.i("USBOfflineUpdater", "resultCode: " + resultCode + " message:" + message); // ===== 情况 1:更新成功 ===== if (resultCode == USBOfflineUpdater.SUCCESS) { // 在主线程中执行更新成功的 UI 处理 binding.getRoot().post(() -> handleUpdateResult(resultCode)); } // ===== 情况 2:更新失败,需执行回滚流程 ===== else { /** * 当前 resultCode 属于以下错误码之一: * 1: ERROR_NO_USB - 未检测到USB设备 * 2: ERROR_NO_UPDATE_PACKAGE - 未找到升级包文件 * 3: ERROR_BATTERY_LOW - 电池电量不足(低于安全阈值) * 4: ERROR_STORAGE_INSUFFICIENT - 存储空间不足 * 5: ERROR_TASK_ALREADY_RUNNING - 系统已有升级任务在进行中 * 6: ERROR_FILE_COPY_FAILED - 升级包文件复制失败 * 7: ERROR_PACKAGE_DECOMPRESSION_FAILED - 升级包解压失败 * 8: ERROR_USER_CANCELLED - 用户手动取消升级操作 * 9: ERROR_UNEXPECTED_EXCEPTION - 未预期的系统异常 * 10: ERROR_USB_DISCONNECTED - 升级过程中USB设备被拔出 * 11: ERROR_VEHICLE_NOT_IN_PARK - 车辆未处于P档(驻车状态) * 12: ERROR_BATTERY_CRITICAL - 电池电量极低(接近关机阈值) * 13: ERROR_FILE_CHECKSUM_FAILED - 文件校验失败(完整性校验不通过) * 14: ERROR_DECRYPTION_OR_SIGNATURE_FAILED - 文件解密失败或签名验证失败 * 15: ERROR_UNKNOWN - 未知错误 */ // 在主线程中执行 UI 操作 binding.getRoot().post(() -> { // 显示回滚过程中的 UI 提示 uiWhenRollback(resultCode); // 处理最终的更新结果(如弹出提示框、跳转页面等) handleUpdateResult(resultCode); }); } } ``` ### 知识点 - **Android 回调机制**:`onResult` 是异步回调函数,用于接收更新任务的执行结果。 - **UI 线程安全操作**:使用 `binding.getRoot().post()` 确保 UI 更新在主线程中执行。 - **错误码逻辑分支处理**:根据 `resultCode` 分类执行成功或失败逻辑,提升代码可读性与可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值