今天在我的设备上安装应用程序时出现“安装错误:INSTALL_FAILED_INSUFFICIENT_STORAGE”错误。它工作正常,直到昨天,今天只有我面临这个问题。我删除了SD卡上的一些文件,但仍面临问题。我确定这不是SD卡空间的问题。任何人都可以建议如何解决这个问题。
- 管理
通过将android:installLocation="preferExternal"
用于清单文件的<manifest>
标记来解决它。
如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="bros.imaq.demilic"
android:versionCode="1"
android:versionName="1.0"
android:installLocation="preferExternal">
谢谢
我的问题是我通过adb上的shell将应用程序位置设置为外部SD卡,之后我的SD卡死了。即使它已不再安装,并且每个设置屏幕,默认位置是内部卡,我的应用程序将无法安装。我不得不通过shell重置默认位置以使其工作。看看我在Android: Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE的回答。
当我得到这个错误试图安装到SD卡不起作用,我使用HTC手机,但从手机删除一些应用程序工作。我认为手机内存需要一些空间,这个空间可能因手机而异。
我正在使用Cordova进行Android和iPhone开发。经过4个月的开发,这个错误大约出现了10次。
什么为我工作
*#9900# - 方法#1起初,我所要做的就是......
但是今天,上面的方法#1没有用。所以我...
方法#2 - 下载中删除数据
谢谢,希望这有帮助!
也许这可以帮助你......
*如果可移动SD卡。请将其更改为内部设备存储。因为,也许你的SD卡有问题。
希望能帮助到你
当外部存储不可用且与存储空间无关时,重新启动实际设备可修复此错误。
我的日志显示以下行:
PackageManager: Package ... could not be assigned a valid uid
PackageManager: package setting is null
PackageManager: Skipping remove dir for ...(user:0, appId:null)
PackageManager: Package couldn't be installed in /data/app/...
PackageManager: com.android.server.pm.PackageManagerException: Creating application package ... failed
PackageManager: at com.android.server.pm.PackageManagerService.scanPackageDirtyLI(PackageManagerService.java:10630)
主要原因似乎是PackageManagerService的例外:
pkgSetting = mSettings.getPackageLPw(...);
if (pkgSetting == null) {
throw new PackageManagerException(INSTALL_FAILED_INSUFFICIENT_STORAGE,
"Creating application package " + pkg.packageName + " failed");
}
对于没有共享用户的未安装的用户应用程序,Settings中使用的代码是:
private PackageSetting getPackageLPw(...) {
// Assign new user id
p.appId = newUserIdLPw(p);
if (p.appId < 0) {
PackageManagerService.reportSettingsProblem(Log.WARN,
"Package " + name + " could not be assigned a valid uid");
return null;
}
}
// Returns -1 if we could not find an available UserId to assign
private int newUserIdLPw(Object obj) {
// None left?
if (N > (Process.LAST_APPLICATION_UID-Process.FIRST_APPLICATION_UID)) {
return -1;
}
}
private void removeUserIdLPw(int uid) {
if (uid >= Process.FIRST_APPLICATION_UID) {
final int N = mUserIds.size();
final int index = uid - Process.FIRST_APPLICATION_UID;
if (index < N) mUserIds.set(index, null);
} ...
}
所以removeUserIdLPw逻辑或卸载没有调用它来释放应用程序用户ID存在一些问题,这需要一些我目前没有的详细卸载日志。
此问题是因为您的设备没有更多空间来安装应用程序。
您需要做两件事,然后才能解决此错误。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.packagename.appname"
android:versionCode="1"
android:versionName="1.0"
android:installLocation="preferExternal">
在我的情况下,使用清单标记的解决方案不起作用,因为该标记没有Android资源。
什么工作只是在手机上卸载应用程序。还有我同时安装的其他几个版本。
解决了我的问题。问题是我曾经在我的rootKit 4.4.2手机上通过adb设置安装位置,将我的应用程序放在SD卡上:
adb shell
pm set-install-location 2
说卡很便宜而且失败了。即使我将默认位置设置为内部SD卡,即使我删除了“损坏的”(廉价且无用的)SD卡,我现在也可以安装没有应用......但现在一切都很好,解决方案是运行
pm set-install-location 2
我尝试了很多东西来自这个线程和许多其他东西,但在我的情况下,没有什么能解决它继续弹出这个消息,对我来说它做了什么它去了应用程序>谷歌播放服务并清除那里的数据。
我正在使用GooglePlayServices 7.3.29,正在调试这款旧Galaxy S1
在我的情况下,我在模拟器上运行,由于本机代码中的accessing a stale local reference,我的应用程序崩溃了。这很可能是无关紧要的,但我提到它,以防崩溃导致问题。基于与INSTALL_FAILED_INSUFFICIENT_STORAGE相关的建议,我现在正在努力使用PM在这些崩溃后卸载我的应用程序:
adb shell pm uninstall <my-application-package>
大多数情况下,这似乎重置了模拟器的状态,以便我可以下次上传/安装/启动。
我有一个简单非常大的.APK(约60Mb)的经验。因为模拟器确实需要3倍大小的APK(1x上传到/ data / local / tmp,2x来保存已安装的-1.apk和-2.apk副本在/ data / app中),这是一个问题当我的模拟器内部存储空间有限时。
在这些情况下我也习惯删除/ data / app中的默认包
adb shell rm /data/app/*
并删除我可能已推送到/ data / local / tmp的任何残留文件
adb shell rm /data/local/tmp/*
即使有这些措施,我也经历过INSTALL_FAILED_INSUFFICIENT_STORAGE,尽管显然有足够的可用空间(正如du
和df
报道的那样)。所以,似乎有一些残余配置。在这些情况下,我必须使用AVD从模拟器图像中Wipe Data
。
我无法卸载应用程序列表中不存在的应用程序。我不得不从/ data / app-lib中删除库文件
然后再次安装应用程序。 adb安装
在星系设备上:
在我的情况下,我发现Storage-> Miscellaneous files-> CasheData占用了8GB,占用了整个内部存储器。清空文件夹并释放内存。
重启设备后,安装的应用程序没有任何错误
在我的情况下关于INSTALL_FAILED_INSUFFICIENT_STORAGE。我必须在Android Virtual Deviece Manager下编辑我的设备的AVD内部和SD存储大小。我将内部存储从200增加到2000,SD卡也增加到2000.并在我的android:installLocation="preferExternal"
文件中添加AndroidManifest.xml
它对我有用。