安装错误:INSTALL_FAILED_CONTAINER_ERROR

时间:2014-02-28 11:14:30

标签: android console android-manifest

  • 运行代码时 安装错误:发生INSTALL_FAILED_CONTAINER_ERROR 请检查logcat输出以获取更多详细信息。 发布已取消!

  • 我只是尝试通过更改来解决这些错误 android:installLocation =“preferExternal”进入 机器人:的installLocation = “自动”

  • 但现在仍然是错误仍然是相同的。所以apk无法安装在模拟器中。

AndroidMainfest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.gems.android"
 android:versionCode="1"
 android:versionName="1.0"
 android:installLocation="auto"
  >

存储

enter image description here

logcat的:

E/memtrack(1386): Couldn't load memtrack module (No such file or directory)
 E/android.os.Debug(1386): failed to load memtrack module: -2
 D/AndroidRuntime(1386)  : Calling main entry com.android.commands.pm.Pm
 W/ActivityManager(381)  : No content provider found for permission revoke: file:///data/local/tmp/GEMS.apk
 E/Vold(47)              : Error creating imagefile (Read-only file system)
 E/Vold(47)              : ASEC image file creation failed (Read-only file system)
 W/Vold(47)              : Returning OperationFailed - no handler for errno 30
 E/PackageHelper(640)    : Failed to create secure container smdl2tmp1
 E/DefContainer(640)     : Failed to create container smdl2tmp1
 W/ActivityManager(381)  : No content provider found for permission revoke: file:///data/local/tmp/GEMS.apk
  • SD卡中的可用内存也是483 MB。
  • 如果有人知道如何解决这些问题,请回复我。谢谢。

3 个答案:

答案 0 :(得分:5)

这是因为

  

ASEC图像文件创建失败(只读文件系统)

SD卡的安装,重新安装,chmod都不会帮助 - 至少它对我来说没有

C:\Users\<User Name>\AppData\Local\Android\sdk\platform-tools>adb shell
root@generic:/ # mount -o remount rw /storage/sdcard
mount -o remount rw /storage/sdcard
root@generic:/ # mount -o remount rw /mnt/sdcard
mount -o remount rw /mnt/sdcard
root@generic:/ # chmod -R 777 /mnt/secure/asec
chmod -R 777 /mnt/secure/asec
Unable to chmod /mnt/secure/asec: Read-only file system

仍然有Unable to chmod /mnt/secure/asec: Read-only file system

根据Stack Overflow上的一些已接受的答案,

Adb重置可能是解决方案的一部分,但它也没有帮助。在安装 sdcard.img 文件(在模拟器上用作SD卡图像的文件)之后,两者都没有帮助通过Windows资源管理器删除 SDCARD / .android_secure / smdl2tmp1.asec strong>可以使用ImDisk程序位于C:\ Users \ .android \ avd \ .avd )(请确保您有正确的选项卡&#34;图像文件访问&#34; - &gt;&# 34;虚拟磁盘驱动器直接访问图像文件&#34;无线电检查。

从模拟器上的Android 设置应用程序即时提供帮助:&#34;存储&#34; - &gt;&#34;删除SD卡&#34; 。如果您在AVD设置中选择Intel Atom作为仿真器CPU,则可能必须至少暂时将其更改为ARM以通过仿真器擦除SD,因为据报道 - 经常在仿真Intel Atom CPU上SD格式化失败。

希望有所帮助!

答案 1 :(得分:1)

尽管大部分时间都可以使用,但即使是新的模拟器和/或SD卡设置有时也会立即显示此故障。

对我来说总是有用的东西(与杀死图像和emus,然后重新启动emu相比,使得开发测试周期快得多)是在内部设备闪存上显式安装软件包 - 显然只是安装失败与SD卡图像一起出现 - 至少对我而言。

使用 pm 工具,您可以在SD卡或闪存上明确安装,因此我 adb推送我的包到设备的SD卡,然后打开一个adb shell使用pm进行显式安装:

adb -e push myapk.apk /mnt/sdcard/temp.apk
adb -e shell
pm install -f /mnt/sdcard/test.apk

如果您使用-s而不是-f,则会指示pm显式安装到SD卡。

BTW - 作为相关的附注: 我还观察到,如果sdcard在模拟器中工作,使用 adb uninstall 后跟 adb install 比使用 adb install重新安装 - 的成功率更高 - [R 即可。在几次测试中证明了这一点,但我没有投入足够的时间以100%的信心说出这一点。这也可能是机会。

答案 2 :(得分:0)

删除我的模拟器并重新创建模拟器似乎可以解决这个问题。