Estoy desarrollando una pequeña aplicación que enumera todas las aplicaciones presentes / instaladas en el dispositivo Android. Pero recibo el siguiente error mientras intento ejecutar el código.
Error de instalación: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
Por favor, ¿alguien puede ayudarme a solucionar este error?
Respuestas:
Podría haber otra razón para este error. El atributo
Siempre debe comenzar con un punto, como:
fuente
El nombre de la actividad debe tener el prefijo "." en su archivo de manifiesto.
fuente
Tenía este error porque tenía letras mayúsculas en el nombre de mi paquete como este
después de haberlo cambiado a algo como
fue resuelto
fuente
PackageParser.java devuelve el código de error INSTALL_PARSE_FAILED_MANIFEST_MALFORMED cuando detecta alguno de un gran número de errores en el archivo manifest.xml.
Para aislar el error, busque en logcat (cuando haga el comando 'adb install foo.apk'). En el problema que encontré, logcat contenía:
En la cuarta línea anterior, puede ver que PackageParser se queja de que la línea # 214 del archivo manifest.xml "<proveedor> no incluye el atributo de autoridades" . Consulte la lista a continuación de todos los casos en PackageParser que devuelve ese código de error. (PackageParser es la única clase que produce el código de error PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED)
En mi caso, el mensaje "<provider> no incluye atributo de autoridades" es producido por la línea 2490 de PackagerParser.java en la función parseProvider llamada por parseApplication.
Desde la versión 4.1.1 de frameworks / base / core / java / android / content / pm / PackageParser.java, se hace referencia a PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED en estas líneas en estos métodos. Si el número de línea del código fuente va seguido de una cadena entre comillas, ese es el mensaje impreso en logcat. si el número de línea va seguido de una expresión de Java que es el código que provocó que se devolviera ese código de error, esa función debe investigarse para ver qué provocó que se devolviera el mensaje de error. En un par de casos, no pude aislar la causa del error en una llamada a un método específico.
Es lamentable que tenga que hurgar en logcat y la fuente para descubrir qué causa un problema.
fuente
IntentFilter.MalformedMimeTypeException
que me perdí.Verifique el nombre de su actividad en el archivo de manifiesto
o el nombre del paquete en la actividad / clase principal
fuente
Tengo el mismo problema, pero cuando llamo a un proceso como este:
Cuando cambio a:
Todo empieza a funcionar.
fuente
Me encontré con el mismo problema hace un tiempo, en los documentos de Android dijeron que si no usas ":" como prefijo en
android:process
, debes usar una letra minúscula, pero nunca dijeron eso, entonces debería ser un proceso similar a un paquete nombre, comocom.company.app.services.MyService
fuente
Cualquier nombre como
android:name
,android:process
debe estar en forma de nombre de paquete: comienza cona..z
, combina con otros con.
, no termina con.
...fuente
android:process="com.my_pack.services.MyServiceProcess"
(com.my_pack.services es el paquete donde está mi servicio) y el error de instalación no aparecerá después de eso.Mi problema fue que había escrito (observe el - frente al _):
bajo una actividad. Esta también podría ser la causa de su problema.
fuente
¡Tengo el mismo error! tenía la etiqueta de permiso vacía y eso estaba causando el problema.
fuente
Me encuentro con el mismo problema después de agregar localizaciones
La cadena
@string/version_name
pasó accidentalmente a uno de los nuevos archivos de cadenas localizados agregados (apareció solo en los archivos nuevos). Después de verificar todas las localizaciones y eliminar@string/version_name
de todos los archivos, excepto la configuración regional de eng, todo funcionó nuevamentefuente
Lea los registros de su dispositivo Android para diagnosticar este error. Espere una línea "W / PackageParser" que explique el problema.
fuente
debe definirse ANTES
fuente
Tuve este error porque el siguiente código
Cuando cambié
android:mimeType="*"
paraandroid:mimeType="*/*"
corregir este error.fuente
La carpeta de nombre de la actividad creada debe ser minúscula. No use letras mayúsculas para el nombre de la carpeta de actividad ... siempre es mejor usar letras minúsculas.
fuente
esto puede deberse a muchas razones, pero para mí se resolvió cambiando el nombre del paquete con el nombre en minúsculas (el nombre del paquete era Actividades, resuelto con actividades).
fuente
Si está utilizando multidex en el manifiesto, debe agregarse valor o recurso. Me gusta..
O
luego limpie el proyecto y reinstale la aplicación.
fuente
En mi caso, me refería a un ícono que usa un atributo como este:
en lugar del dibujable:
Estoy usando este atributo en varios lugares, pero parece que no funciona en el manifiesto.
fuente
Creo una nueva aplicación y la apunto a Android Pie . Todo estaba funcionando bien y bien, últimamente descubrí que mi aplicación no se instala en Android Naught y en la versión inferior del sistema operativo Android.
Durante la instalación, veo un mensaje de error
Entonces, las correcciones que hice son las siguientes y todas deben hacerse
AndroidManifest.xml
solo en el archivo.Para actividad, servicio, receptor y todo
Para permisos de manifiesto
Esos fueron todos los cambios que tuve que realizar para que funcionara también en dispositivos de versiones inferiores.
fuente
Objetivo
<activity>
necesita ser especificada antes de la<activity-alias>
.fuente
Puede haber otros archivos con formato incorrecto pero que no están resaltados en el IDE, por ejemplo, res / valores / cadenas a las que el manifiesto puede hacer referencia para cosas como etiquetas.
fuente
En mi caso, la causa fue la ausencia del atributo android: name en <activity-alias>. Es obligatorio para <activity-alias> aunque no debe nombrar una clase existente. Lo curioso es que el proyecto se compila sin problemas.
fuente
Mi problema fue el siguiente:
Estaba especificando mis permisos de la siguiente manera y no funcionaba.
Funcionaba bien cuando lo cambié para que fuera el siguiente:
fuente
Tenía este error porque tenía la línea a continuación.
Después de que lo cambie a
el problema fue resuelto
fuente
Después de luchar con este problema, descubrí que todos los valores que se usan como un valor de recurso de cadena (también conocido como @ string /) en los manifiestos (de las bibliotecas que está usando también), no pueden ser parte de strings.xml de localizaciones. . Ejemplo: si su archivo de manifiestos usa @ string / app_name, la definición de string / app_name solo se permite en sus valores predeterminados / strings.xml y no en el archivo alternativo string.xml que usted proporciona para las localizaciones. Espero que eso ayude..
fuente
Tuve el mismo error. No tenía caracteres en mayúsculas en el nombre de mi paquete / aplicación y limpiar el proyecto y otras soluciones tampoco me ayudaron. después de todo, creé un nuevo proyecto y copié mis cosas en el nuevo paso a paso y verifiqué si aparece el problema. después de todo, tenía un proyecto agradable y libre de errores sin redundancia. a veces es difícil encontrar el origen de este error, por lo que es más fácil adoptar otro enfoque.
¡Espero que esto ayude a alguien!
fuente
¡Me enfrenté a este error cuando puse la clase de aplicación en un paquete incorrecto!
fuente
Probablemente no haya seguido las reglas de sintaxis de una etiqueta. por ejemplo:
Esta etiqueta está incompleta y causa este error.
Descripción general del manifiesto de la aplicación
fuente
Usar
android:resource
en en<meta-data>
lugar deandroid:src
yandroid:srcCompat
fuente
Sé que es tarde para responder aquí, pero cometo un error extraño, así que publique mi respuesta si ayuda a alguien.En mi caso, por error, agregué la actividad del iniciador principal como alias
Entonces, cuando intento ejecutar mi aplicación, aparece un error
Error al instalar APK
Simplemente elimino la palabra "-alias" del registro de actividad y mi aplicación se inicia correctamente.
fuente