true testonly studio largeheap fullbackupcontent false debuggable application allow android manifest failed-installation

studio - android testonly true



Error de instalación: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED? (25)

¡Me enfrenté a este error cuando puse la clase de aplicación en un paquete incorrecto!

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

Error de instalación: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

Por favor, ¿alguien me puede ayudar a resolver este error?


¡Obtuve el mismo error! tenía una etiqueta de permiso vacía y eso estaba causando el problema!


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


Después de luchar con este problema, descubrí que todos los valores que se utilizan como valor de recurso de cadena (también conocido como @ cadena /) en los manifiestos (de las bibliotecas que está utilizando también) no pueden formar parte de strings.xml de localizaciones . Ejemplo: si su archivo de manifiestos usa @cadena / nombre_aplicación, la definición de cadena / nombre_aplicación solo está permitida en sus valores / cadenas.xml predeterminados y no en el archivo de cadena alternativa.xml que proporciona para las localizaciones. Espero que eso ayude..


El código de error INSTALL_PARSE_FAILED_MANIFEST_MALFORMED es devuelto por PackageParser.java cuando detecta una gran cantidad de errores en el archivo manifest.xml.

Para aislar el error, busque en logcat (cuando hace 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 de autoridades" . Consulte el listado 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 autoridades" es producido por la línea 2490 de PackagerParser.java en la función parseProvider llamada por parseApplication.

A partir de la versión 4.1.1 de frameworks / base / core / java / android / content / pm / PackageParser.java, PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED se referencia en estas líneas en estos métodos. Si el número de línea del código fuente es seguido por una cadena entrecomillada que es el mensaje impreso en logcat. si el número de línea es seguido por una expresión Java que es el código que hizo que se devuelva ese código de error, esa función debe investigarse para ver qué causó que se devuelva 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.

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 en la fuente para descubrir qué causa un problema.


El nombre de la actividad debe tener el prefijo "." en tu archivo de manifiesto


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.


En mi caso, me refería a un ícono 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 usando este atributo en varios lugares, pero parece que no funciona en manifiesto.


Estaba teniendo este error porque tenía la línea a continuación.

android:protectionLevel="developer"

Después de haberlo cambiado a

android:protectionLevel="signature"

problema fue resuelto


Estaba teniendo este error porque tenía mayúsculas en el nombre de mi paquete como este

Com.Example.packagename

después de que lo había cambiado a algo así como

com.example.packagename

fue resuelto


Lee los registros de tu dispositivo Android para diagnosticar este error. Espere una línea "W / PackageParser" explicando el problema.


Me encontré con el mismo problema tiempo atrás, en los developer.android.com/guide/topics/manifest/… Android dijeron que si no usa ":" como prefijo en android:process debería usar una letra minúscula, pero nunca dijeron eso, entonces debería ser una paquete como nombre de proceso, como com.company.app.services.MyService


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" >

El string @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 cada archivo, excepto la configuración regional, todo funcionó de nuevo


Mi problema era que había escrito (Observe el - frente al _):

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

bajo una actividad. Esta podría ser la causa de su problema también.


Mi problema fue el siguiente:

Estaba especificando mis permisos de la siguiente manera y no estaba funcionando.

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

Funcionó bien cuando lo cambié para que fuera de la siguiente manera:

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


Puede haber otra razón para este error. El atributo

android:taskAffinity="string"

Siempre debe comenzar con un punto, como:

android:taskAffinity=".string"


Puede haber otros archivos con formato incorrecto pero que no están resaltados en el IDE, por ejemplo, las res / values ​​/ cadenas a las que el manifiesto puede hacer referencia para cosas como etiquetas.


Si está utilizando multidex en 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 limpia el proyecto y vuelve a instalar la aplicación.


Tengo el mismo problema, pero cuando llamo a un 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 comienza a funcionar.


Tuve el mismo error. No tenía un carácter en mayúsculas en el nombre de mi paquete / aplicación y limpié 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 verifico si el problema aparece. después de todo, tuve un proyecto agradable y libre de errores sin 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!


Tuve este error porque el código a continuación

<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.


Verifique su nombre de actividad en el archivo de manifiesto

o el nombre del paquete en la actividad principal / clase

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


actividad creada carpeta de nombre debe ser letras pequeñas, no utilizar letras mayúsculas para el nombre de la carpeta de actividad ... siempre es mejor usar letras pequeñas.


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


<activity/>

debe definirse ANTES

<activity-alias/>