Android 这意味着什么:失败[安装失败\u容器\u错误]?

Android 这意味着什么:失败[安装失败\u容器\u错误]?,android,package-managers,android-package-managers,Android,Package Managers,Android Package Managers,我尝试部署我的应用程序,有时会出现以下错误: Failure [INSTALL_FAILED_CONTAINER_ERROR] 我试着用谷歌搜索它,但没有找到错误的意思或是什么 由…引起的。我通过IDE(IntelliJ)部署,文件被复制到 设备连接到/data/local/tmp(未安装华为Ideos,运行2.2), 但是软件包经理似乎不喜欢它。在安装前 apk,我已经事先从设备中删除了应用程序。我还做了 确保设备上的/data/local/tmp下没有旧文件。仍然 我现在得到这个错误。

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

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]
这意味着什么?如何解决

编辑/更新:

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

android:installLocation="internalOnly"
在舱单上。对于开发来说没问题,但对于生产来说,这并不是我真正想要的——因为我的应用程序相当大,有17mb;因此我更喜欢SD卡。
如何在没有根的情况下将其安装到外部内存中(因为这是我删除/mnt/secure/asec/smdl2tmp1.asec的唯一方法,这似乎也是一种解决方案)。

从设备中删除此文件

/mnt/secure/asec/smdl2tmp1.asec
Mathias Conradt编辑/更新(OP):

如果您没有root访问权限,则需要安装SD卡并通过pc将其卸下:

/.android_secure/smdl2tmp1.asec

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

将安装位置从

android:installLocation="preferExternal"
进入


在项目的AndroidManifest.xml中。

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

对于我来说,这是由于模拟器sd卡上的空间不足造成的。我当时正在处理一个相当大的项目,我认为40 mb就足够了,但我把它改为200 mb,问题就解决了。

对我来说,这是设备语言。我把语言改成阿拉伯语来测试我的应用程序。然后我犯了这个错误。还原语言就成功了。

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

我在emulator上也有类似问题。当我将emulator的CPU类型从ARM更改为Intel时,它就消失了。

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

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

我从Android 5.0.1中得到了这个错误消息。 我已经通过设置->应用->首选安装位置将首选安装位置更改为“可移动SD卡”

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

android:installLocation=“auto”可以工作

如果没有,, 检查外部存储空间大小。[可用内存>应用程序大小]
如果存储空间不足,则也会抛出此错误。

在my Note 8上的Cyanogenmod 12.1(Android 5.1.1)上的各种
.apk
也有相同的错误,并为Link2SD设置了第二个分区。通过以root用户身份通过adb强制安装,我可以安装这些应用程序:

adb root
adb install -f myapp.apk


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

但是我的设备没有根目录,并且查看安全文件夹,只有root用户有权访问。我以前可以运行这个应用程序,但现在已经有一段时间了,无法运行了,并且出现了上面的错误。顺便说一句,还有一个文件夹/mnt/asec/,我可以用非root用户访问,但这是错误的empty@Jazz这件事今天发生在我身上。我真的很想知道这是为什么。手动删除文件?为什么eclipse不能这样做?这是电话窃听器吗?我有这个问题。我无法使用Mac查看文件/文件夹。还有别的办法吗?这很有效,但你能解释一下,为什么会这样吗?神秘的smdl2tmp1.asec文件中有什么?这就是它为我做的。谢谢是的,这也帮了我。谢谢但是我想。。。?如何解决这个问题?@Sameer-nope,这种情况也发生在真实的设备上,但并不一致。主要的是HTC Desire S和Nexus设备。@AidenFry如果您想保留首选外部设备,请使用user2445968解决方案。出于好奇:您可以通过
pm安装-f com.company.shop安装它吗?
安装失败\u容器\u错误问题有几种变体,对于其中一些问题,请参见我的答案:对于我,这就像模拟器“空间不足”(?)一样简单,我必须在AVD管理器中擦除数据。欢迎使用堆栈溢出!谢谢你的帖子!请勿在帖子中使用签名/标语。您的用户框算作您的签名,您可以使用您的个人资料发布您喜欢的任何关于您自己的信息。使用相同的解决方案解决了此问题,因为该问题是由于写入SD卡时出错造成的,因此如果您希望保留android:installLocation=“preferExternal”。请确认。SD上的错误是我的原因。我测试了它从清单中删除“Preference external”(首选外部),安装正常。这并不能真正帮助OP解决他们的问题,因为他们关心的是让它在现实世界的设备上工作,很多设备仍然使用ARM CPU。是的,我也遇到了同样的情况。竖起大拇指:)除了增加内存外,我还必须擦除用户数据,只有在这之后,新的大小才会反映出来,错误才会消失
adb root
adb install -f myapp.apk