130

我尝试部署我的应用程序,有时会出现此错误:

Failure 
[INSTALL_FAILED_CONTAINER_ERROR] 

我试图用谷歌搜索它,但没有找到错误的含义或它是由什么引起的。我通过IDE(IntelliJ)部署文件被复制到设备的/data/local/tmp(无根华为Ideos,运行2.2),但包管理器似乎不喜欢它。在安装 apk 之前,我已经事先从设备中删除了该应用程序。我还确保设备上的 /data/local/tmp 下没有旧文件。我现在仍然收到此错误。该包应该使用调试密钥进行签名,因为我通过 IDE 通过“运行”应用程序进行部署。

$ pwd 
/data/local/tmp 
$ ls -l 
-rw-rw-rw- shell    shell    17257686 2011-04-21 20:31 
com.company.shop 
$ pm install -r com.company.shop 
        pkg: com.company.shop 
Failure [INSTALL_FAILED_CONTAINER_ERROR]

这是什么意思以及如何解决它?

编辑/更新:

不允许在 sdcard 上安装应用程序时,我可以避免错误,设置

android:installLocation="internalOnly"

在清单中。对于开发来说没问题,但对于生产来说,这并不是我真正想要的——因为我的应用程序非常大,只有 17mb;因此我更喜欢它在 sdcard 上。如何能够在不生根的情况下将其安装在外部存储器上(因为这是我可以删除 /mnt/secure/asec/smdl2tmp1.asec 的唯一方法,这似乎也是一种解决方案)。

4

15 回答 15

224

更改安装位置

android:installLocation="preferExternal"

进入

android:installLocation="auto"

在您项目的 AndroidManifest.xml 中。

于 2012-04-15T10:20:54.533 回答
45

从您的设备中删除此文件

/mnt/secure/asec/smdl2tmp1.asec

Mathias Conradt (OP) 编辑/更新:

如果您没有 root 访问权限,则需要挂载 sdcard 并通过 pc 将其删除:

/.android_secure/smdl2tmp1.asec
于 2011-04-21T12:55:29.360 回答
32

如果您使用的是模拟器,请对其进行编辑并添加更多内存。我遇到了像这样的问题,我所做的只是将 AVD 的内存从 200 MB 编辑到 1000 MB,问题似乎消失了……祝你好运。

于 2011-08-11T23:59:58.737 回答
7

这意味着之前的安装已损坏。如果您在外部安装,我建议您格式化 sd 卡再试一次。

于 2012-04-16T11:37:57.900 回答
6

我反复遇到这个错误。我发现完全避免错误的最简单方法是简单地格式化 SD 卡。使用手机或模拟器内部工具。我发现自动生成的 SD 卡或什至制作自己的 sdcard.iso 失败并导致此错误,除非由内部 android 工具格式化。

于 2013-06-02T21:23:47.407 回答
4

对我来说,这是由于我的模拟器 SD 卡空间不足造成的。我正在处理一个相当大的项目,我认为 40 mb 就足够了,但我将其更改为 200 mb,问题就消失了。

于 2012-08-05T22:47:31.993 回答
4

.apk我的 Note 8 上的 Cyanogenmod 12.1 (Android 5.1.1) 上的各种错误与 Link2SD 的第二个分区相同。我能够通过以 root 身份通过 adb 强制安装来安装应用程序:

adb root
adb install -f myapp.apk
于 2016-07-05T17:23:09.687 回答
3

我从 Android 5.0.1 收到此错误消息。我已通过设置->应用程序->首选安装位置将首选安装位置更改为“可移动 SD 卡”。

我将选项改回“让系统决定”,错误消息消失了。

于 2015-03-21T15:59:41.577 回答
1

对我来说,这是设备语言。我将语言更改为阿拉伯语来测试我的应用程序。然后我得到了这个错误。恢复语言就可以了。

于 2012-10-23T09:21:23.650 回答
1

android:installLocation="auto" 有效..!!

如果不是,请检查您的外部存储空间大小。[可用内存>应用程序大小]如果存储空间不足,也会引发此错误。

于 2016-02-10T09:53:19.660 回答
1

当您在内部存储中没有足够的存储空间来安装应用程序时,就会发生这种情况。只需通过删除不需要的文件或照片来清理内部存储中的一些内存。内存清理软件也可以提供帮助。

于 2021-06-17T16:35:49.347 回答
0

我在模拟器上遇到了类似的问题。当我将模拟器的 CPU 类型从 ARM 更改为 Intel 时,它就消失了。

于 2013-06-22T21:48:12.333 回答
0

在某些情况下,删除 会libs/android-support-v4.jar生成此错误。

于 2014-03-31T02:58:50.303 回答
0

对我来说,卸载几个应用程序解决了这个问题。当本地存储有足够的内存时,APK 的部署成功完成。但通常我只是重新启动一个小工具,然后安装就完成了。此外,像 Clean Master 这样的程序可能会有所帮助。只需经常使用 Clean Master 擦除无用的进程并关闭程序并获得足够的内存。

于 2014-07-18T10:09:53.510 回答
0

重新启动我的设备为我解决了这个问题。

于 2017-01-05T11:22:15.697 回答