Je développe une petite application qui répertorie toutes les applications présentes / installées sur l'appareil Android. Mais j'obtiens l'erreur ci-dessous pendant que j'essaye 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.
Réponses:
Il peut y avoir une autre raison à cette erreur. L'attribut
Devrait toujours commencer par un point, comme:
la source
Le nom de l'activité doit être précédé de "." dans votre fichier manifeste.
la source
J'avais cette erreur car j'avais des lettres majuscules dans le nom de mon package comme celui-ci
après l'avoir changé en quelque chose comme
c'était résolu
la source
Le code d'erreur INSTALL_PARSE_FAILED_MANIFEST_MALFORMED est renvoyé par PackageParser.java lorsqu'il détecte l'une d'un grand nombre d'erreurs dans le fichier manifest.xml.
Pour isoler l'erreur, regardez dans logcat (lorsque vous exécutez la commande 'adb install foo.apk'). Dans le problème que j'ai rencontré, logcat contenait:
Dans la quatrième ligne ci-dessus, vous pouvez voir que PackageParser se plaint que la ligne # 214 du fichier manifest.xml "<provider> n'inclut pas l'attribut des autorités" . Consultez 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 "<provider> n'inclut pas l'attribut des autorités" est produit par la ligne 2490 de PackagerParser.java dans la fonction parseProvider appelée par parseApplication.
Depuis 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, c'est le 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 renvoi du message d'erreur. Dans quelques cas, je n'ai pas pu isoler la cause de l'erreur à un appel de méthode spécifique.
Il est regrettable que vous deviez fouiller dans logcat et dans la source pour déterminer ce qui cause un problème.
la source
IntentFilter.MalformedMimeTypeException
que j'ai manqué.Vérifiez le nom de votre activité dans le fichier manifeste
ou le nom du package dans l'activité / la classe principale
la source
J'ai le même problème mais lorsque j'appelle un processus comme celui-ci:
Quand je change pour:
Tout commence à fonctionner.
la source
J'ai rencontré le même problème il y a un certain temps, dans la documentation Android, ils ont dit que si vous n'utilisez pas ":" comme préfixe,
android:process
vous devriez utiliser une lettre minuscule, mais ils ne l'ont jamais dit, alors ce devrait être un package comme process nom, commecom.company.app.services.MyService
la source
Tout nom tel que
android:name
,android:process
doit être sous forme de nom de package: commence para..z
, se combine avec d'autres avec.
, ne se termine pas par.
...la source
android:process="com.my_pack.services.MyServiceProcess"
(com.my_pack.services est le package où se trouve mon service) et l'erreur d'installation ne s'affichera pas après cela.Mon problème était que j'avais écrit (notez le - contre le _):
sous une activité. Cela pourrait également être la cause de votre problème.
la source
J'ai la même erreur! avait une balise d'autorisation vide et cela causait le problème!
la source
Je rencontre le même problème après avoir ajouté des localisations
La chaîne est
@string/version_name
accidentellement passée dans l'un des nouveaux fichiers de chaînes localisés ajoutés (elle n'apparaît que dans les nouveaux fichiers). Après avoir vérifié toutes les localisations et supprimé@string/version_name
de chaque fichier à l'exception de la locale eng locale, tout a fonctionné à nouveaula source
Lisez les journaux de votre appareil Android pour diagnostiquer cette erreur. Attendez-vous à une ligne «W / PackageParser» expliquant le problème.
la source
doit être défini AVANT
la source
J'ai eu cette erreur car le code ci-dessous
Quand j'ai changé
android:mimeType="*"
pourandroid:mimeType="*/*"
corriger cette erreur.la source
le dossier de nom de l'activité créé doit être en minuscules, n'utilisez pas de majuscules pour le nom du dossier d'activité .... il est toujours préférable d'utiliser des minuscules.
la source
cela peut être pour de nombreuses raisons, mais pour moi, cela a été résolu en changeant le nom du package avec un nom en minuscule (le nom du package était Activités, résolu avec des activités).
la source
Si vous utilisez multidex dans le manifeste, il doit être ajouté avec une valeur ou une ressource. Comme..
OU
puis nettoyez le projet et réinstallez l'application.
la source
Dans mon cas, je faisais référence à une icône utilisant un attribut comme celui-ci:
au lieu du dessinable:
J'utilise cet attribut à plusieurs endroits mais il semble que cela ne fonctionne pas dans le manifeste.
la source
Je crée une nouvelle application et la cible sur Android Pie . Tout fonctionnait bien et ces derniers temps, j'ai constaté que mon application ne s'installe pas sur Android Naught et sous la version Android OS.
Lors de l'installation, je vois un message d'échec
Donc, les corrections que j'ai apportées sont les suivantes et elles doivent toutes être effectuées
AndroidManifest.xml
uniquement dans un fichier.Pour l'activité, le service, le récepteur et tous
Pour les autorisations de manifeste
Ce sont tous les changements que j'ai dû effectuer pour que cela fonctionne également pour les appareils de version inférieure.
la source
La cible
<activity>
doit être spécifiée avant le<activity-alias>
.la source
Il peut y avoir d'autres fichiers mal formés mais qui ne sont pas mis en surbrillance dans l'EDI, par exemple les res / values / strings auxquels le manifeste peut faire référence pour des choses comme les étiquettes.
la source
Dans mon cas, la cause était l'absence d'attribut android: name dans <activity-alias>. Il est obligatoire pour <activity-alias> bien qu'il ne doive pas nommer une classe existante. Le plus drôle, c'est que le projet se compile sans problème.
la source
Mon problème était le suivant:
Je spécifiais mes autorisations de la manière suivante et cela ne fonctionnait pas.
Cela fonctionnait bien lorsque je l'ai changé comme suit:
la source
J'avais cette erreur parce que j'avais la ligne ci-dessous.
Après que je l'ai changé en
le problème a été résolu
la source
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 @ string /) dans les manifestes (des bibliothèques que vous utilisez également) ne sont pas autorisées à faire partie de strings.xml de localisations . Exemple: si votre fichier manifeste utilise @ string / app_name, la définition de string / app_name n'est autorisée que dans vos valeurs par défaut / strings.xml et non dans le fichier string.xml alternatif que vous fournissez pour les localisations. J'espère que cela aide ...
la source
J'ai eu la même erreur. Je n'avais pas de caractère majuscule dans le nom de mon package / application et nettoyer le projet et d'autres solutions ne m'ont pas non plus aidé. après tout, j'ai créé un nouveau projet et copié mes affaires dans le nouveau étape par étape et vérifiez si le problème apparaît. après tout, j'ai eu un projet agréable et sans erreur sans aucune redondance. Parfois, il est difficile de trouver la source de cette erreur, il est donc plus facile d'adopter une autre approche.
j'espère que cela aide quelqu'un!
la source
J'ai rencontré cette erreur lorsque j'ai mis la classe Application dans un mauvais package!
la source
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 d'application
la source
Utiliser
android:resource
au<meta-data>
lieu deandroid:src
etandroid:srcCompat
la source
Je sais qu'il est tard pour répondre ici mais je fais une erreur étrange alors postez ma réponse si cela aide quelqu'un, dans mon cas par erreur, j'ai ajouté l'activité du lanceur principal en tant qu'alias
Donc, lorsque j'essaie d'exécuter mon application, une erreur s'affiche
Erreur lors de l'installation de l'APK
Je viens de supprimer le mot «-alias» de l'enregistrement d'activité et mon application démarre avec succès.
la source