Puis-je supprimer cette autorisation? (Il cause INSTALL_FAILED_DUPLICATE_PERMISSION dans Android 5.0 appareil)
Mon testeur dit qu'il ne pouvait pas installer l'application depuis le Play Store pour son Nexus 5 (Lollipop). Il a dit qu'il a eu cette erreur
Unknown error code during application install “-505”
J'ai pris son téléphone et essayez d'installer l'application via adb, j'ai eu cette erreur
Failure [INSTALL_FAILED_DUPLICATE_PERMISSION
perm=com.example.gcm.permission.C2D_MESSAGE
pkg=com.mailchimp.alterego]
Après un peu de lecture, je suis tombé sur cette écriture à partir de @Commonsware
http://commonsware.com/blog/2014/08/04/custom-permission-vulnerability-l-developer-preview.html
C'est clairement que les deux mon application et Mailchimp app (qui est installé sur mon testeur de téléphone) a dupliqué la permission, com.exemple.gcm.la permission.C2D_MESSAGE. Je vérifie ma commande git log pour voir quand ai-je ajouter cette ligne à mon AndroidManifest et trouvé que c'était quand j'mettre en œuvre des GCM. À l'époque, j'ai suivi ce tutoriel
https://developer.android.com/google/gcm/client.html
Je suppose, à la fois moi et Mailchimp développeur de suivre le même tuto, a ajouté la même autorisation et maintenant, à la fois notre application en double autorisation.
Donc, je supprime que la permission de mon AndroidManifest et maintenant, je suis en mesure d'installer mon application sur mon testeur de téléphone. Je test le GCM message par l'envoi de colis à GCM serveur à partir de mon script php et app encore GCM message comme il était.
Donc, il y aura d'autres question soulevée en raison de cette absence de l'autorisation et qu'est-ce que le point d'avoir la permission de toute façon? (car, sans lui, mon application a encore GCM message)
Mon souci c'est que, si notre application est à l'aide d'un plugin/bibliothèque autorisation requise. Nous ne serons pas en mesure d'installer notre application sur Lollipop appareil si il y a une autre application installée qui à l'aide de la même bibliothèque, n'est-ce pas?
-- NOTE -
J'ai déjà lu cette question, peu de gens suggèrent la même chose à ce que j'ai fait, retirer la permission. Mais personne ne parle de ce qui va se passer après nous, ou, pourquoi devons-nous ajouter.
INSTALL_FAILED_DUPLICATE_PERMISSION... C2D_MESSAGE
-- EDIT 1 --
Je suis de retour pour le tuto, le tuto est à droite, c'était ma mauvaise mise en œuvre
Je (et Mailchimp développeur) devrait ajouter une autorisation avec le nom de notre du package de l'application + ".la permission.C2D_MESSAGE" au lieu de simplement copier et coller com.exemple.gcm.la permission.C2D_MESSAGE
<permission android:name="com.mycompany.myappname.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
Mais, cette soulever une autre question à moi, tutoriel a dit que si nous n'ajoutons pas de cette autorisation ou le nom ne correspond pas au modèle, l'application ne sont pas le message.Mais j'ai le message quand j'ai tester, même quand je supprimer ce pemission... bizarre.
il n'est pas clair à partir de votre EDIT 1, devrions-nous utiliser des chaînes de caractères avec ...C2D_MESSAGE ou ...C2D_MESSAGE android:protectionLevel="signature"
Je viens de résoudre mon problème en désinstallant la version précédente de l'application, qui a été signé avec un relâchement de la touche et pas mon debug de android studio
Ce problème est simple, l'exemple de code à partir de Google dit que nous avons besoin d'ajouter cette autorisation. Le problème est que certains devs de copier le code du tutoriel et collez-les dans leur AndroidManifest.xml comme je l'ai fait. La question ne sera jamais soulever jusqu'à ce que vous essayez d'installer votre application (avec copie & coller le code), mais votre téléphone dispose déjà d'une autre application à partir d'un autre développeur qui a également copier & coller le même code. Cela conduira à la situation où un téléphone est de 2 applications en double autorisation. Pour résoudre ce problème, nous devons lire le tutoriel avec soin.
J'ai connu le même problème avec l'un des plugins cordova. Je comprends, vous avez résolu votre problème, mais juste au cas où d'autres veulent connaître la solution. Utiliser ${identificateur applicationid} au lieu de nom réel dans le androidmanifest. <la permission android:name="${identificateur applicationid}.la permission.C2D_MESSAGE" android:protectionLevel="signature"/> <uses-permission android:name="${identificateur applicationid}.la permission.C2D_MESSAGE"/>
OriginalL'auteur Tar_Tw45 | 2015-01-05
Vous devez vous connecter pour publier un commentaire.
Comme décrit dans INSTALL_FAILED_DUPLICATE_PERMISSION... C2D_MESSAGE , vous devez utiliser
${applicationId}
au lieu d'une application statique id dans le AndroidManifest.Exemple:
Il permettra de résoudre votre problème et si vous avez de départ à l'aide de la Saveur tout fonctionnera parfaitement. 😉
OriginalL'auteur JannGabriel
Changer votre nom de package à un autre paquet de nom, au lieu de la suppression des autorisations.
à
OriginalL'auteur RajaReddy PolamReddy
Android 5.0. Vous avez Multi-Utilisateur, Vous devez Désinstaller pour tous les Utilisateurs
Étapes suivantes:
Après La Désinstallation De L'Application. Vous pouvez constaté que le nom de Votre appli dans la Liste des Applications Téléchargées Onglet.
Accédez à Paramètres->Apps.
Au bas de la liste vous avez trouvé YourApp avec "NON INSTALLÉ" Tag -> Open ->
Cliquez sur l'Option de Menu et Sélectionnez "Désinstaller pour tous les Utilisateurs".
Après que le processus de l'installation de la nouvelle application et fonctionne bien.
OriginalL'auteur hoa.nguyen.VN