INSTALL_FAILED_INSUFFICIENT_STORAGE 错误是每个 Android 开发人员生活的祸根。无论应用程序大小或可用存储空间如何,都会发生这种情况。重新启动目标设备可以暂时解决问题,但很快就会出现问题。有数百(如果不是数千)人们在留言板上发帖询问为什么会出现问题,但 Google 的人们对这个问题保持沉默,令人沮丧。
有一个简单的解决方法。如果您的测试设备运行的是 Android 2.2 或更高版本,则将 android:installLocation 属性添加到应用程序的 list 文件中,其值为 "preferExternal"。这将强制将应用安装在设备的外部存储设备上,例如手机的 SD 卡。
例如:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.andrewsmith.android.darkness"
android:installLocation="preferExternal"
这更像是一种创可贴而不是修复,如果您希望完成的应用程序安装在设备的内存中,它可能并不理想。但它至少会让开发过程不那么令人沮丧。
最佳答案
这只是一个临时解决方法,并不是真正的解决方法。
在我遇到这种情况并且对当前的 react 不满意后,我开始工作 试图从 AOSP 源中找出答案。我找到了REAL解决方案。
首先,关于 Android 的一些(简化)背景知识安装和更新
The first time an app is installed:
The APK file is saved as
/data/app/<full.package.name>-1.apk (1.apk)When the app is to be updated:
The updated APK file is saved as:
/data/app/<full.package.name>-2.apk (2.apk)The first version (1.apk) gets deleted.
On our next update(s):
- The new APK is saved as (1.apk) and (2.apk) is deleted (Repeat forever).
我们大多数人在更新应用程序时都会遇到的问题,但删除旧 APK 失败。这本身还不会导致更新失败,但确实会导致 /data/app 中有两个 APK 文件.
下次您尝试更新应用程序时,系统无法移动其临时文件,因为 (1.apk) 和 (2.apk) 都不是空的。由于 File#renameTo(File) 没有抛出异常,而是返回一个 bool 型 PackageManager,因此它无法说明为什么它返回 INSTALL_FAILED_INSUFFICIENT_STORAGE,即使失败与可用空间量无关。
运行:
adb shell "pm uninstall <full.packge.name>"
adb shell "rm -rf /data/app/<full.package.name>-*"
或
卸载应用
使用您喜欢的方法删除BOTH:
/data/app/<full.package.name>-1.apk
/data/app/<full.package.name>-2.apk
确保没有其他任何东西以类似的方式阻止 future 的安装。就我而言,我有一个 /data/app-lib/<full.package.name>-1目录挥之不去!在这种情况下,安装到 SD card工作,随后也转移到内部存储器。 (创建没有 /data/app-lib/<full.package.name> 结尾的 -1。)
安装到外部存储的代码明显不同,没有相同的问题
卸载应用只会删除/data/app中的一个APK文件版本.这就是为什么您可以重新安装一次,但不能更新它。
发生此错误时,模拟器中的可用空间量并不真正相关
关于android - Android上INSTALL_FAILED_INSUFFICIENT_STORAGE错误的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4709137/
我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="
我克隆了一个rails仓库,我现在正尝试捆绑安装背景:OSXElCapitanruby2.2.3p173(2015-08-18修订版51636)[x86_64-darwin15]rails-v在您的Gemfile中列出的或native可用的任何gem源中找不到gem'pg(>=0)ruby'。运行bundleinstall以安装缺少的gem。bundleinstallFetchinggemmetadatafromhttps://rubygems.org/............Fetchingversionmetadatafromhttps://rubygems.org/...Fe
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
运行:ruby1.9.3p0和Rails3.2.1尝试使用rspec但当我尝试将其安装到我的应用程序中时出现以下错误:/Users/Si/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.1/lib/rails/railtie/configuration.rb:85:in`method_missing':undefinedmethod`generators'for#(NoMethodError)from/Users/Si/.rvm/gems/ruby-1.9.3-p0/gems/rspec-rails-2.0.0.beta.18/lib/rspec-r
我已经通过提供MagickWand.h的路径尝试了一切,我安装了命令工具。谁能帮帮我?$geminstallrmagick-v2.13.1Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingrmagick:ERROR:Failedtobuildgemnativeextension./Users/ghazanfarali/.rvm/rubies/ruby-1.8.7-p357/bin/rubyextconf.rbcheckingforRubyversion>=1.8.5...yescheckingfor/
在Test::Unit中的ruby单元测试断言失败后,在执行teardown之前,是否有一些简洁优雅的方法来立即执行我的代码?我正在做一些自动化的GUI测试,并希望在出现问题后立即截图。 最佳答案 如果您使用的是1.9,请不要使用Test::Unit::TestCase作为您的基类。对其进行子类化并覆盖#run_test以进行救援,截取屏幕截图并重新提出:classMyAbstractTestCase或者,我认为这实际上是最简洁的方法,您可以使用before_teardownHook:classMyTestCase这不适用于1.
如何使用geminstall同时安装多个gem,同时指定我想要的版本?例子:geminstallakami-v1.2.0--ignore-dependenciesgeminstallatomic-v1.1.14--ignore-dependenciesgeminstallaws-s3-v0.6.2--ignore-dependenciesgeminstallbackports-v3.3.0--ignore-dependenciesgeminstallbrendanlim-sms-fu-v1.0.0--ignore-dependenciesgeminstallbuilder-v3.1.3
我使用RVM安装Ruby-2.1.5并再次运行bundle。现在pggem不会安装,我得到这个错误:geminstallpg-v'0.17.1'----with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_configBuildingnativeextensionswith:'--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config'Thiscouldtakeawhile...ERROR:Error
我正在尝试运行rakedb:create在DigitalOcean服务器上使用postgresql。但是,它返回错误Peerauthenticationfailedforuser"rails",引用config/database.yml登录凭据的存储位置奇怪的是,当我通过SSH登录服务器时,这些凭据以纯文本形式显示给我。我都试过了密码以纯文本形式显示给我,同样的事情发生了。环境在生产中,我必须手动强制执行,因为应用程序在启动时正在开发中并强制它在config/environments.rb中更改不工作。如果我不得不猜测,我可能会说环境中发生了一些有趣的事情,因为DigitalOcean
我是Rails的新手,我遇到了一个错误,但我似乎找不到问题所在。这是日志:[32651:ERROR]2012-10-0913:46:52::comparisonofFloatwithFloatfailed[32651:ERROR]2012-10-0913:46:52::/home/sunny/backend/lib/analytics/lifetime.rb:45:in`each'/home/sunny/backend/lib/analytics/lifetime.rb:45:in`max'/home/sunny/backend/lib/analytics/lifetime.rb:45