设置android:installLocation =“preferExternal”时出错

当我像这样设置Manifest.xml文件时

 

android安装会出错

[2011-03-24 18:18:47 – 火箭项目]安装错误:INSTALL_FAILED_CONTAINER_ERROR [2011-03-24 18:18:47 – 火箭项目]请查看logcat输出以获取更多详细信息。 [2011-03-24 18:18:47 – 火箭项目]发射取消!

但是当我设置android:intallLocation =“auto”时

安装成功。 这是为什么?

logcat错误

03-24 18:48:38.784:ERROR / PackageHelper(1284):无法创建安全容器smdl2tmp1 03-24 18:48:38.784:ERROR / DefContainer(1284):无法创建容器smdl2tmp1 03-24 18:48: 38.784:ERROR / Vold(86):ASEC文件’/mnt/secure/asec/smdl2tmp1.asec’目前存在 – 首先销毁它! (地址已在使用中)

检查你的minSDKversion设置为什么。 此function仅适用于FROYO。 (SDK VERSION 8以后)。

你还需要编译它并在Android2.2 sdk上运行

在我的情况下,文件smdl2tmp1.asec以某种方式被破坏。 我把卡放在PC上,我甚至无法将该文件复制到我的硬盘中(用于备份)。 所以我不得不删除它,它解决了这个问题。

昨天我的手机在安装游戏时重新启动,我认为它有一些与这个问题有关的问题。

看起来Android在这方面有点小问题,并没有正确处理所有可能的情况。

我有一个类似但更复杂的问题。 解决方案基本上是删除/sdcard/.android_secure /中的相应文件。另请参阅:

http://www.androidpolice.com/2011/04/19/fixing-the-couldnt-install-on-usb-storage-or-sd-card-problem-on-android/

我自己的问题涉及两个 Android设备。 在设备#1(Android 2.2)上安装了一个应用程序,然后我将设备#1安装到设备#2(Android 4.0.3)上。 然后我在设备#2上安装了相同的应用程序。 猜猜它安装在设备#1的SD卡上, 覆盖设备#1上的安装。 卸载设备#1后,该应用程序无法在设备#2上运行。 该应用仍然可以在设备#1上运行。 我在设备#2上卸载它,没有错误,但无法重新安装它(我收到错误“无法创建安全容器smdl2tmp1”)。

我的解决方案是在设备#1上卸载应用程序,然后将其重新安装到设备#2上,然后将其安装在设备#2上。 然后我将应用程序从SD卡移动到内部存储器。

我建议您检查并查看您的仿真器是否安装了外置SD卡吗? 您可以在创建AVD时进行设置。

重启设备对我有用。