Error de instalación: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED?

Estoy desarrollando una pequeña aplicación que enumera todas las aplicaciones presentes / instaladas en el dispositivo android. Pero estoy recibiendo el siguiente error mientras estoy tratando de ejecutar el código.

Error de instalación: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

Por favor, cualquiera puede ayudarme a solucionar este error.

El nombre de la actividad debe tener el prefijo "." En su archivo de manifiesto.

Podría haber otra razón para este error. El atributo

android:taskAffinity="string" 

Siempre debe comenzar con un punto, como:

 android:taskAffinity=".string" 

Estaba teniendo este error porque tenía letras mayúsculas en mi nombre del paquete como esto

 Com.Example.packagename 

Después de que lo había cambiado a algo como

 com.example.packagename 

Fue resuelto

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:

 W/ActivityManager( 360): No content provider found for permission revoke: file:///data/local/tmp/foo.apk D/Finsky (32707): [1] PackageVerificationReceiver.onReceive: Verification requested, id = 6 D/Finsky (32707): [1] WorkerTask.onPreExecute: Verification Requested for id = 6, data=file:///data/local/tmp/foo.apk flags=112 fromVerificationActivity=false W/PackageParser(32707): /data/local/tmp/foo.apk (at Binary XML file line #214): <provider> does not include authorities attribute D/Finsky (32707): [716] PackageVerificationService.getPackageInfo: Cannot read archive for file:///data/local/tmp/foo.apk in request id=6 D/Finsky (32707): [1] PackageVerificationReceiver.onReceive: Verification requested, id = 6 W/ActivityManager( 360): No content provider found for permission revoke: file:///data/local/tmp/foo.apk I/PackageManager( 360): Copying native libraries to /data/app-lib/vmdl1205566381 W/PackageParser( 360): /data/app/vmdl1205566381.tmp (at Binary XML file line #214): <provider> does not include authorities attribute 

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 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 "<proveedor> no incluye el atributo de las 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, PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED se hace referencia en estas líneas en estos métodos. Si el número de línea de código fuente es seguido por una cadena entre comillas que es el mensaje impreso en logcat. Si el número de línea es seguido por una expresión de Java que es el código que provocó que se devuelva el código de error que debería investigarse esa función para ver qué causó el mensaje de error que se devolverá. En un par de casos no pude aislar la causa del error a una llamada de método específico.

 in parsePackage: 536: (only used in 'core apps' with no 'pkg') 973: "<manifest> has more than one <application>" 1275: "Bad element under <manifest>: " --if RIGID_PARSER in parsePermissionGroup: 1464: !parsePackageItemInfo(owner, perm.info, outError, "<permission-group>", sa, com.android.internal.R.styleable.AndroidManifestPermissionGroup_name, com.android.internal.R.styleable.AndroidManifestPermissionGroup_label, com.android.internal.R.styleable.AndroidManifestPermissionGroup_icon, com.android.internal.R.styleable.AndroidManifestPermissionGroup_logo) 1482: !parseAllMetaData(res, parser, attrs, "<permission-group>", perm, outError) in parsePermission: 1506: !parsePackageItemInfo(owner, perm.info, outError, "<permission>", sa, com.android.internal.R.styleable.AndroidManifestPermission_name, com.android.internal.R.styleable.AndroidManifestPermission_label, com.android.internal.R.styleable.AndroidManifestPermission_icon, com.android.internal.R.styleable.AndroidManifestPermission_logo) 1530: "<permission> does not specify protectionLevel" 1541: "<permission> protectionLevel specifies a flag but is not based on signature type" 1548: !parseAllMetaData(res, parser, attrs, "<permission>", perm, outError) in parsePersmissionTree: 1572: !parsePackageItemInfo(owner, perm.info, outError, "<permission-tree>", sa, com.android.internal.R.styleable.AndroidManifestPermissionTree_name, com.android.internal.R.styleable.AndroidManifestPermissionTree_label, com.android.internal.R.styleable.AndroidManifestPermissionTree_icon, com.android.internal.R.styleable.AndroidManifestPermissionTree_logo) 1585: "<permission-tree> name has less than three segments: "+perm.info.name 1595: !parseAllMetaData(res, parser, attrs, "<permission-tree>", perm, outError) in parseInstrumentation: 1625: new Instrumentation(mParseInstrumentationArgs, new InstrumentationInfo()) 1648: "<instrumentation> does not specify targetPackage" 1654: !parseAllMetaData(res, parser, attrs, "<instrumentation>", a, outError) in parseApplication: 1678: buildClassName(pkgName, name, outError) == null 1851: (Set by various other functions) 1869: parseActivity(owner, res, parser, attrs, flags, outError, false, hardwareAccelerated) == null 1878: parseActivity(owner, res, parser, attrs, flags, outError, true, false) == null 1887: parseService(owner, res, parser, attrs, flags, outError) == null 1896: parseProvider(owner, res, parser, attrs, flags, outError) == null 2484: "Heavy-weight applications can not have providers in main process" 2890: "<provider> does not incude authorities attribute" 1905: parseActivityAlias(owner, res, parser, attrs, flags, outError) == null 1917: parseMetaData(res, parser, attrs, owner.mAppMetaData, outError) == null 1969: "Bad element under <application>: "+tagName 

Es lamentable que tengas que buscar en logcat y la fuente para averiguar qué causa un problema.

Compruebe su nombre de actividad en el archivo de manifiesto

O el nombre del paquete en la actividad / clase principal

 <activity android:name="MainActivity"></activity> 

Tengo el mismo problema, pero cuando llamo al proceso como este:

 <service android:name="com.dexode.tama.AppService" android:process="screen" > </service> 

Cuando cambio a:

 <service android:name="com.dexode.tama.AppService" android:process=":screen" > </service> 

Todo empieza a funcionar.

Me encontré con el mismo problema hace tiempo, en los documentos de Android dicen que si no utiliza ":" como prefijo en android:process que debe utilizar una letra minúscula, pero nunca dijo eso, entonces debe ser un Paquete como nombre de proceso, como com.company.app.services.MyService

Cualquier nombre como android:name , android:process debe estar en forma de nombre del paquete: comienza con a..z , se combina con otros con . , No terminan con .

Mi problema era que yo había escrito (Observe el – vs el _):

 <meta_data ... /> <!-- instead of --> <meta-data ... /> 

Bajo una actividad. Esto podría ser la causa de su problema también.

Tienes el mismo error! Tenía etiqueta de permiso vacía y que estaba causando el problema!

Me encuentro con el mismo problema después de agregar localizaciones

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="my.package" android:versionCode="10" android:versionName="@string/version_name" > 

La cadena @string/version_name pasó accidentalmente a uno de los nuevos archivos de cadena localizados agregados (apareció sólo en los nuevos archivos). Después de comprobar todas las localizaciones y de quitar @string/version_name de cada archivo excepto eng locale todo funcionó de nuevo

 <activity/> 

Debe ser definido ANTES

 <activity-alias/> 

Tuve este error porque el código de abajo

 <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="*" android:host="*" android:scheme="content" /> </intent-filter> 

Cuando cambié android:mimeType="*" a android:mimeType="*/*" corrigió este error.

Lea los registros de dispositivos Android para diagnosticar este error. Espere un "W / PackageParser" línea explicando el problema.

Si está utilizando multidex en el manifiesto, entonces debe agregarse con valor o recurso. Me gusta..

 <meta-data android:name="android.support.multidex.MultiDexApplication" android:value="@string/yourValue" /> 

O

 <meta-data android:name="android.support.multidex.MultiDexApplication" android:resource="@string/yourValue" /> 

Luego limpie el proyecto y vuelva a instalar la aplicación.

<activity-alias> target <activity> debe especificarse antes del alias.

Podría haber otros archivos mal formados pero no resaltados en el IDE, por ejemplo los res / values ​​/ strings que el manifiesto puede hacer referencia para cosas como etiquetas.

En mi caso la causa fue la ausencia de android: name atributo en <actividad-alias>. Es obligatorio para <activity-alias>, aunque no debe nombrar una clase existente. Lo curioso es que el proyecto se compila sin problemas.

Mi problema era el siguiente:

Estaba especificando mis permisos de la siguiente manera y no funcionaba.

 <permission android:name="android.permission.INTERNET"> <meta-data /> </permission> <permission android:name="android.permission.ACCESS_NETWORK_STATE"> <meta-data /> </permission> 

Estaba funcionando bien cuando lo cambié para que fuera como sigue:

 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

Estaba teniendo este error porque tenía la línea de abajo.

 android:protectionLevel="developer" 

Después de cambiarlo a

 android:protectionLevel="signature" 

Problema fue resuelto

Después de luchar con este problema descubrí que todos los valores que se utilizan como un valor de recurso de cadena (aka @ string /) en los manifiestos (de las bibliotecas que está usando demasiado), no se les permite ser parte de strings.xml de localizaciones . Ejemplo: si su archivo de manifiesto utiliza @ string / app_name, la definición de string / app_name sólo está permitida en los valores por defecto / strings.xml y no en el archivo string.xml alternativo que proporciona para las localizaciones. Espero que eso ayude..

Tuve el mismo error. No tenía carácter mayúscula en mi nombre del paquete / de la aplicación y limpiar el proyecto y otras soluciones también no me ayudaron hacia fuera. Después de todo lo que he creado nuevo proyecto y copiar mis cosas a la nueva paso a paso y comprobar si el problema aparece. Después de todo, tenía un proyecto agradable y sin errores sin ninguna redundancia. A veces es difícil encontrar la fuente de este error por lo que es más fácil tomar otro enfoque.

¡Espero que esto ayude a alguien!

¡Hice frente a este error cuando puse la clase de la aplicación en un paquete incorrecto!

En mi caso me estaba refiriendo a un icono usando un atributo como este:

 <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="?attr/ic_notify" /> 

En lugar del dibujable:

 <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/ic_notify" /> 

Estoy utilizando este atributo en varios lugares, pero parece que no funciona en el manifiesto.

Actividad creada carpeta de nombre debe ser letras pequeñas, No use letras mayúsculas para el nombre de carpeta de actividad …. siempre es mejor utilizar letras pequeñas.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.