【问题标题】:Installation error: INSTALL_FAILED_CONTAINER_ERROR安装错误:INSTALL_FAILED_CONTAINER_ERROR
【发布时间】:2014-04-01 08:42:33
【问题描述】:
  • 运行代码时, 安装错误:发生INSTALL_FAILED_CONTAINER_ERROR
    请检查 logcat 输出以获取更多详细信息。 发射已取消!

  • 我只是尝试通过更改 android:installLocation="preferExternal" 进入 android:installLocation="auto"

  • 但现在错误仍然相同。因此无法在模拟器中安装 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"
  >

存储:

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。
  • 如果有人知道如何解决这些问题,请回复我。谢谢。

【问题讨论】:

    标签: android console android-manifest


    【解决方案1】:

    这是因为

    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

    Adb reset,根据 Stack Overflow 上的一些公认答案,可能是解决方案的一部分,但也没有帮助。因为在安装 sdcard.img 文件(在模拟器上用作 SD 卡映像的文件和 可以位于 C:\Users\.android\avd\.avd )与 ImDisk 程序(请确保您在右侧选项卡“图像文件访问”->“虚拟磁盘驱动器直接访问图像文件" 收音机检查)。

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

    希望有帮助!

    【讨论】:

    • 对于模拟器,暂时切换到 ARM 以擦除 SD 卡对我有用。这使我可以保留我的“preferExternal”设置并安装我的应用程序。感谢您的解决方案。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      虽然这在大多数情况下都有效,但即使是新的模拟器和/或 SD 卡设置有时也会立即显示此故障。

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

      使用 pm 工具,您可以在 sdcard 或 flash 上显式安装,所以我 adb push 我的包到设备的 sdcard,然后打开 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 显式安装到 sdcard。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-16
        • 1970-01-01
        • 1970-01-01
        • 2018-09-15
        • 2015-06-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多