Erreur d’installation: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED?

Je développe une petite application qui répertorie toutes les applications présentes sur le périphérique Android. Mais j’obtiens l’erreur ci-dessous pendant que j’essaie d’exécuter le code.

Erreur d’installation: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

S’il vous plaît, quelqu’un peut-il m’aider à résoudre cette erreur.

Le nom de l’activité doit être précédé du préfixe “.” dans votre fichier manifeste.

Il pourrait y avoir une autre raison à cette erreur. L’atsortingbut

android:taskAffinity="ssortingng" 

Devrait toujours commencer par un point, comme:

 android:taskAffinity=".ssortingng" 

J’avais cette erreur parce que j’avais des majuscules dans mon nom de paquet comme ça

 Com.Example.packagename 

après l’avoir changé à quelque chose comme

 com.example.packagename 

il a été résolu

Le code d’erreur INSTALL_PARSE_FAILED_MANIFEST_MALFORMED est renvoyé par PackageParser.java lorsqu’il détecte un grand nombre d’erreurs dans le fichier manifest.xml.

Pour isoler l’erreur, consultez logcat (lorsque vous exécutez la commande ‘adb install foo.apk’). Dans le problème que j’ai rencontré, logcat contenait:

 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):  does not include authorities atsortingbute 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):  does not include authorities atsortingbute 

Dans la quasortingème ligne ci-dessus, vous pouvez voir que PackageParser se plaint que la ligne # 214 du fichier manifest.xml n’inclut pas d’atsortingbut autorités” . Voir la liste ci-dessous de tous les cas dans PackageParser qui renvoie ce code d’erreur. (PackageParser est la seule classe qui produit le code d’erreur PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED)

Dans mon cas, le message “ n’inclut pas l’atsortingbut autorités” est produit par la ligne 2490 de PackagerParser.java dans la fonction parseProvider appelée par parseApplication.


Dans la version 4.1.1 de frameworks / base / core / java / android / content / pm / PackageParser.java, PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED est référencé sur ces lignes dans ces méthodes. Si le numéro de ligne du code source est suivi d’une chaîne entre guillemets, il s’agit du message imprimé dans logcat. si le numéro de ligne est suivi d’une expression Java qui est le code qui a provoqué le renvoi de ce code d’erreur, cette fonction doit être examinée pour voir ce qui a provoqué le retour du message d’erreur. Dans quelques cas, je n’ai pas pu isoler la cause de l’erreur avec un appel de méthode spécifique.

 in parsePackage: 536: (only used in 'core apps' with no 'pkg') 973: " has more than one " 1275: "Bad element under : " --if RIGID_PARSER in parsePermissionGroup: 1464: !parsePackageItemInfo(owner, perm.info, outError, "", 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, "", perm, outError) in parsePermission: 1506: !parsePackageItemInfo(owner, perm.info, outError, "", 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: " does not specify protectionLevel" 1541: " protectionLevel specifies a flag but is not based on signature type" 1548: !parseAllMetaData(res, parser, attrs, "", perm, outError) in parsePersmissionTree: 1572: !parsePackageItemInfo(owner, perm.info, outError, "", 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: " name has less than three segments: "+perm.info.name 1595: !parseAllMetaData(res, parser, attrs, "", perm, outError) in parseInstrumentation: 1625: new Instrumentation(mParseInstrumentationArgs, new InstrumentationInfo()) 1648: " does not specify targetPackage" 1654: !parseAllMetaData(res, parser, attrs, "", 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: " does not incude authorities atsortingbute" 1905: parseActivityAlias(owner, res, parser, attrs, flags, outError) == null 1917: parseMetaData(res, parser, attrs, owner.mAppMetaData, outError) == null 1969: "Bad element under : "+tagName 

Il est regrettable que vous deviez fouiller dans logcat et la source pour déterminer ce qui cause un problème.

Vérifiez le nom de votre activité dans le fichier manifeste

ou le nom du package dans l’activité principale / la classe

  

J’ai le même problème mais quand j’appelle le processus comme ceci:

   

Quand je change de:

   

Tout commence à fonctionner.

J’ai rencontré le même problème il y a un certain temps, dans les documents Android, ils ont dit que si vous n’utilisez pas “:” comme préfixe dans android:process vous devriez utiliser une lettre minuscule, mais ils ne l’ont jamais dit. package comme nom de processus, comme com.company.app.services.MyService

N’importe quel nom tel que android:name , android:process devrait être sous la forme d’un nom de package: commence par a..z , combine avec d’autres avec . , ne finissez pas avec .

Mon problème était que j’avais écrit (Notez le – vs le _):

    

sous une activité. Cela pourrait aussi être la cause de votre problème.

J’ai la même erreur! avait une étiquette de permission vide et cela causait le problème!

Je rencontre le même problème après l’ajout de localisations

  

La chaîne @ssortingng/version_name été transmise accidentellement dans l’un des nouveaux fichiers de chaîne localisés ajoutés (il apparaît uniquement dans les nouveaux fichiers). Après avoir vérifié toutes les localisations et supprimé @ssortingng/version_name de tous les fichiers sauf eng locale, tout a fonctionné à nouveau

  

doit être défini AVANT

  

J’ai eu cette erreur parce que le code ci-dessous

      

Lorsque j’ai changé android:mimeType="*" à android:mimeType="*/*" corrigé cette erreur.

Lisez les journaux de votre appareil Android pour diagnostiquer cette erreur. Attendez-vous à une ligne “W / PackageParser” expliquant le problème.

Si vous utilisez multidex dans manifeste, il doit être ajouté avec valeur ou ressource. Comme..

  

OU

  

nettoyez ensuite le projet et réinstallez l’application.

target doit être spécifié avant l’alias.

Dans mon cas, je faisais référence à une icône utilisant un atsortingbut comme celui-ci:

  

au lieu du dessinable:

  

J’utilise cet atsortingbut à plusieurs endroits, mais il semble que cela ne fonctionne pas dans manifeste.

Il pourrait y avoir d’autres fichiers qui sont malformés mais qui ne sont pas mis en évidence dans l’EDI, par exemple les res / values ​​/ ssortingngs que le manifeste peut référencer pour des choses telles que les étiquettes.

Dans mon cas, la cause était l’absence d’Android: atsortingbut name dans . Il est obligatoire pour bien qu’il ne doive pas nommer une classe existante. Ce qui est drôle, c’est que le projet se comstack sans problèmes.

Mon problème était le suivant:

Je spécifiais mes permissions de la manière suivante et cela ne fonctionnait pas.

       

Cela fonctionnait bien quand je l’ai changé pour être comme suit:

   

J’avais cette erreur parce que j’avais la ligne ci-dessous.

 android:protectionLevel="developer" 

Après l’avoir changé pour

 android:protectionLevel="signature" 

le problème a été résolu

Après avoir lutté avec ce problème, j’ai découvert que toutes les valeurs utilisées comme valeur de ressource de chaîne (aka @ ssortingng /) dans les manifestes (des bibliothèques que vous utilisez également) ne sont pas autorisées à faire partie de ssortingngs.xml des localisations. . Exemple: si votre fichier manifeste utilise @ ssortingng / app_name, la définition de ssortingng / nom_app est autorisée uniquement dans vos valeurs par défaut / ssortingngs.xml et non dans le fichier ssortingng.xml de remplacement que vous fournissez pour les localisations. J’espère que ça aide ..

J’ai eu la même erreur. Je n’avais pas de majuscule dans mon nom de paquet / application et je nettoie le projet, et les autres solutions ne m’ont pas aidé. Après tout, j’ai créé un nouveau projet et copié pas à pas le nouveau et vérifie si le problème apparaît. Après tout, j’ai eu un projet agréable et sans erreur, sans aucune redondance. Il est parfois difficile de trouver la source de cette erreur, il est donc plus facile d’adopter une autre approche.

J’espère que cela aidera quelqu’un!

J’ai fait face à cette erreur quand j’ai mis la classe Application dans un mauvais paquet!

activité nom du dossier créé doit être de petites lettres, ne pas utiliser des lettres majuscules pour le nom du dossier d’activité …. il est toujours préférable d’utiliser de petites lettres.

Vous n’avez probablement pas suivi les règles de syntaxe d’une balise. par exemple:

  

Cette balise est incomplète et provoque cette erreur.

Présentation du manifeste de l’application