0
votes

Erreur Xamarin uniquement Android 6.0 mono.androidTools.InstallFaileDException et NSTALL_PARSE_FAILED_MANIFEST_MALFORMED

J'ai créé un projet à Xamarin avec Visual Studio Professional 2017, le projet Clean / Build / Compilez normalement et installez-le sur Android 7.0, 7.1, 8.0, 8.1 et 9.0 (émulateur et périphériques).

 compile et construire OK

Cependant, n'installez pas / construire sur Android 6.0 et 6.1 (émulateur ou périphérique), j'essaie d'installer dans l'émulateur et le périphérique, affichez l'erreur:

 échec de l'échec dans Android 6.0 xxx

déjà nettoyé, dossiers supprimés" bin "et" obj "plusieurs fois, des paquets de cache-caches effacés , Nuget et montre toujours l'erreur.

Est-ce que quelqu'un pourrait m'aider à comprendre pourquoi l'erreur ne se produit que dans Android 6.0 / 6.1? xxx


3 commentaires

Vous pouvez utiliser l'Android Lint Pour vérifier votre manifeste, il est déjà installé dans la partie intégrante des outils Android et peut être trouvé sur Outils / bin . Il a signalé plusieurs erreurs / avertissement avec votre manifeste: Sites.google.com/ A / Android.com / Outils / Conseils / Lint


@Sushihangover Merci, Android Lint est un bon outil et a aidé à diriger ma quête de trouver la solution.


Content que cela ait aidé 🍣


3 Réponses :


1
votes

L'erreur indique que vous avez un manifeste mal formé:

"install_parse_failed_manifest_malformed" p> blockQuote>

Si j'essaie de charger votre manifeste en chrome, il est également erroné là-bas. P>

Il n'y a pas de balise de fermeture pour ce commentaire: p>

<!-- Set color used with incoming notification messages. This is used when no


3 commentaires

J'ai testé XML en chrome et n'a montré aucune erreur de format. Apparemment, le XML est OK et l'application s'installe normalement sur Android 7/8/9. L'erreur ne se produit que dans Android 6.0


Si je coupais et collez votre manifeste exact de ce message, enregistrez-le sous forme de fichier XML et chargez-le en chrome, il est erroné. Je suppose que votre manifeste est différent de celui que vous avez posté. En fait, je suis sûr que c'est parce que je vois que vous avez modifié votre valeur API_KEY à "xxxxxxxxxxxxxxxxxxxxx". Et, je suppose que vous avez probablement supprimé accidentellement l'étiquette de commentaire finale sur cette ligne que j'ai citée. Si vous n'avez pas de balise de commentaire de fermeture sur cette "couleur de réglage ..." Ligne dans votre manifeste réelle, ajoutez-le et essayez d'installer à nouveau.


Vous avez raison, j'ai édité la valeur de la clé et supprimé une partie du code. Pardon.



1
votes

Honnêtement, ce problème était très déroutant pour moi. Cependant, Robert Bruce (@ 6157192) avait raison, le problème était dans Manifest.xml, mais pas dans la configuration Manifest.xml, dans le manifeste.xml généré après la construction.

Je vais décrire les étapes à la recherche de la Meilleure "solution" pour moi: p>

1. em> stry> iRroid Lint (@sushihangover / @ 4984832) plusieurs fois, en faisant les ajustements requis, en révision de et nettoyer le manifeste principal.xml. p> xxx pré>

2. em> stry> nettoyé, recompanté et déployé avec Visual Studio 2017 et Androiï Emulateur Nexus 5x (API 23). P>

Évidemment, l'erreur s'est produite, toutefois, si vous regardez le terminal de sortie, il est généré APK pour l'installation. P>

        <service
            android:name="md556d51780b7ddda82c5xxxxxxxxxxxxx.RegistrationIntentService"
            android:exported="false" />

        <service
            android:name="md527cd63edec29ae2b7xxxxxxxxxxxxx.PeriodicService"
            android:exported="false" />

        <service
            android:name="md51a4cc6308c061c7f0xxxxxxxxxxxxx.OrderService"
            android:exported="false" />

        <service
            android:name="md51a4cc6308c061c7fxxxxxxxxxxxxx.PostService"
            android:exported="false" />

        <receiver
            android:name="md53c9e18cf96d129xxxxxxxxxxxxx.BootReceiver"
            android:permission="android.permission.RECEIVE_BOOT_COMPLETED"
            android:enabled="true"
            android:exported="false">

            <intent-filter
                android:priority="-1000">

                <action
                    android:name="android.intent.action.BOOT_COMPLETED" />

                <category
                    android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>


1 commentaires

Vous pouvez trouver le fichier AndroidManifest.xml sous Projet / Obj / Debug / XXX / Android. Il devrait sauver l'étape d'extraction du manifeste de l'APK.



0
votes

J'ai frappé ma tête pendant des heures sur une application qui fonctionne bien sur Android 8+ mais a refusé d'installer quelque chose de plus bas que cela.

L'utilitaire de peluche Android ne m'a pas fait de plus sage, que ce soit comme il a été signalé qu'il n'y avait aucune erreur que ce soit.

À la fin, le problème est apparu comme le nom d'une activité commençant par une majuscule.

Malheureusement, seul l'émulateur Android 7.0 m'a donné une description d'erreur décente (pointant sur la ligne dans le fichier manifeste et l'attribut)

L'émulateur Android 6.0 m'a donné une erreur générique comme mentionné par l'OP.


1 commentaires

Je comprends votre frustration, j'ai également passé plusieurs heures à trouver la raison d'erreur. Parfois, c'est très ennuyeux et frustré.