¿Qué significa esto: Error [INSTALL_FAILED_CONTAINER_ERROR]?


129

Intento implementar mi aplicación y, a veces, aparece este error:

Failure 
[INSTALL_FAILED_CONTAINER_ERROR] 

Intenté buscarlo en Google, pero no encuentro qué significa el error o por qué lo causa. Implemento a través de IDE (IntelliJ) el archivo se copia en el dispositivo a / data / local / tmp (Huawei Ideos sin raíz, ejecutando 2.2), pero al administrador de paquetes no parece gustarle. Antes de instalar el apk, ya eliminé la aplicación del dispositivo de antemano. También me aseguré de que no hubiera ningún archivo antiguo en / data / local / tmp en el dispositivo. Todavía recibo este error ahora. El paquete debe estar firmado con la clave de depuración, ya que lo implemento a través de IDE 'ejecutando' la aplicación.

$ 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]

¿Qué significa y cómo resolverlo?

Editar / Actualizar:

Puedo evitar el error al no permitir que la aplicación se instale en la tarjeta SD, configurando

android:installLocation="internalOnly"

en el manifiesto Está bien para el desarrollo, pero para la producción, no es realmente lo que quiero, ya que mi aplicación es bastante grande con 17mb; Por lo tanto, prefiero que esté en la tarjeta SD. Cómo poder instalarlo en la memoria externa sin rootear (ya que esta es la única forma en que podría eliminar /mnt/secure/asec/smdl2tmp1.asec, que también parece ser una solución).


Solo por curiosidad: ¿puedes instalarlo pm install -f com.company.shop?
Jakub Czaplicki

Hay varias variaciones en el INSTALL_FAILED_CONTAINER_ERRORproblema, para algunos de ellos vea mi respuesta aquí: stackoverflow.com/a/30343659/313113
bitek

Para mí, fue tan simple como el emulador "quedándose sin espacio" (???) y tuve que borrar los datos en el Administrador de AVD.
EpicPandaForce

Respuestas:


44

eliminar este archivo de su dispositivo

/mnt/secure/asec/smdl2tmp1.asec

Editar / Actualizar por Mathias Conradt (OP):

Si no tiene acceso a la raíz, debe montar la tarjeta sd y eliminarla a través de la PC:

/.android_secure/smdl2tmp1.asec

3
pero mi dispositivo está desrooteado, y mirando la carpeta segura, solo la raíz tiene acceso. Pude ejecutar la aplicación antes, solo ahora desde hace un tiempo, no puedo ejecutarla y da el error anterior.
Mathias Conradt

1
por cierto, también hay una carpeta / mnt / asec / que puedo alcanzar con no root, pero que está vacía
Mathias Conradt

3
@Jazz Esto me pasó hoy. Realmente me gustaría saber por qué / de qué se trata. ¿Eliminar archivo manualmente? ¿Por qué no podría eclipse hacer esto? ¿Es esto un error del teléfono?
Erik

1
Estoy teniendo este problema. No puedo ver los archivos / carpetas con mi Mac. ¿Hay alguna otra manera?
SleepNot

14
Esto funcionó, pero ¿podría explicar por qué lo hace? ¿Qué hay en el misterioso archivo smdl2tmp1.asec?
Alexander Pacha

222

Cambiar la ubicación de instalación de

android:installLocation="preferExternal"

dentro

android:installLocation="auto"

en el AndroidManifest.xml de tu proyecto.


12
Esto es lo que hizo por mí. ¡Gracias!
Jim McKeeth

Sí, esto también lo hizo por mí. ¡Gracias!
Senthil Kumaran

22
pero quiero preferir lo externo ...? ¿Cómo arreglar esto?
Aiden Fry

2
@Sameer no, esto también ocurre en dispositivos reales, pero es inconsistente. Los principales son los dispositivos HTC Desire S y Nexus.
Aiden Fry

1
@AidenFry Use la solución user2445968 si desea mantener preferExternal.
LG

32

Si está utilizando un emulador, edítelo y agregue más memoria. He tenido un problema como este y todo lo que hice fue editar la memoria de mi AVD de 200 MB a 1000 MB y el problema parece desaparecer ... Buena suerte.


Sí, sucedió lo mismo conmigo. Pulgares arriba :)
NaXir

Además de aumentar la memoria, también tuve que borrar los datos del usuario y solo después de eso, el nuevo tamaño se reflejó y el error desapareció.
Varun

2
¿Puedo adivinar que se refiere al almacenamiento interno y no a la RAM?
Jonny

1
¡Aumenté la memoria de mi AVD y luego borré los datos! Y ahora está funcionando.
Conozca a Vora el

7

Esto significa que hubo una instalación anterior que estaba dañada. Si instala en externo, le sugiero que formatee la tarjeta SD y vuelva a intentarlo.


6

He tenido este error repetidamente. He encontrado que la forma más simple de evitar el error en su totalidad es simplemente formatear la tarjeta SD. Uso del teléfono o emuladores de herramientas internas. He descubierto que las tarjetas SD generadas automáticamente o incluso al hacer su propio sdcard.iso fallan y causan este error a menos que lo formateen las herramientas internas de Android.


1
¡Bienvenido a Stack Overflow! Gracias por tu publicación! No utilices firmas / lemas en tus publicaciones. Su carpeta de usuario cuenta como su firma, y ​​puede usar su perfil para publicar cualquier información sobre usted que desee. Preguntas frecuentes sobre firmas / lemas
Andrew Barber

Resolvió esto con la misma solución, ya que el problema es causado por un error al escribir en la tarjeta SD, es mejor que el entorno de trabajo de René si desea mantener android: installLocation = "preferExternal".
LG

Confirmar. Error en SD fue la razón para mí. Lo probé eliminando "preferir externo" del manifiesto: está instalado bien.
djdance

4

Para mí, esto fue causado por la falta de espacio en la tarjeta SD de mi emulador. Estaba trabajando con un proyecto bastante grande y pensé que 40 mb eran suficientes, pero lo cambié a 200 mb y el problema desapareció.


4

Tuve el mismo error con varios .apken Cyanogenmod 12.1 (Android 5.1.1) en mi Note 8 con una segunda partición para Link2SD. Pude instalar las aplicaciones forzando la instalación a través de adb como root:

adb root
adb install -f myapp.apk

3

Recibí este mensaje de error de Android 5.0.1. Había cambiado la ubicación de instalación preferida a "Tarjeta SD extraíble" a través de Configuración-> Aplicaciones-> Ubicación de instalación preferida.

Cambié la opción de nuevo a "Dejar que el sistema decida" y el mensaje de error desapareció.


1
Esta parecía ser la solución para mí con Cyanogenmod 12 (Android 5.0.2). Esa apertura parecía estar obligando a la aplicación a instalarse en la tarjeta SD extraíble a pesar de que el manifiesto de la aplicación especificaba que no podía instalarse allí.
Sam

1

Para mí, fue el idioma del dispositivo. Cambié el idioma al árabe para probar mi aplicación. Entonces recibí este error. Revertir el idioma hizo el truco.


1

android: installLocation = "auto" funciona .. !!

Si no es así, una vez verifique el tamaño del espacio de almacenamiento externo. [Memoria disponible> tamaño de la aplicación] Si el espacio de almacenamiento no es suficiente, también se genera este error.


0

Tuve un problema similar con el emulador. Desapareció cuando cambié el tipo de CPU del emulador de ARM a Intel.


Esto realmente no ayuda al OP con su problema, ya que su preocupación es que funcione en dispositivos del mundo real, muchos de los cuales aún usan CPU ARM.
James Green

0

En algunas situaciones, la eliminación de libs/android-support-v4.jargenera este error.


0

Para mí, la desinstalación de varias aplicaciones resolvió el problema. Cuando un almacenamiento local ha tenido suficiente memoria, la implementación de APK se completó con éxito. Pero, por lo general, simplemente reinicio un gadget y la instalación se completa. Además, algunos programas como Clean Master pueden ayudar. Simplemente limpie los procesos inútiles y cierre los programas con Clean Master y obtenga suficiente memoria.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.