Entferne ich diese Erlaubnis? (Es Ursache INSTALL_FAILED_DUPLICATE_PERMISSION in Android 5.0-Gerät)
Meiner tester sagte, dass er konnte nicht installieren Sie die app aus dem Play Store auf seinem Nexus 5 (Lollipop). Er sagte, er habe diesen Fehler
Unknown error code during application install “-505”
Nahm ich sein Handy und versuchen, installieren Sie die app über adb, bekam ich diese Fehlermeldung
Failure [INSTALL_FAILED_DUPLICATE_PERMISSION
perm=com.example.gcm.permission.C2D_MESSAGE
pkg=com.mailchimp.alterego]
Nach einiger Lektüre, stieß ich auf dieses schreiben von @Commonsware
http://commonsware.com/blog/2014/08/04/custom-permission-vulnerability-l-developer-preview.html
Es ist klar, dass sowohl meine app und die Mailchimp-app (installiert auf meiner tester-Handy) kopiert hat, die Erlaubnis, com.Beispiel.gcm.die Genehmigung.C2D_MESSAGE. Dann überprüfe ich mein git log, um zu sehen, Wann ich hinzufügen, dass die Leitung zu meiner AndroidManifest und festgestellt, dass es war, als ich implementieren GCM. Damals, ich folgte diesem tutorial
https://developer.android.com/google/gcm/client.html
Ich denke, sowohl ich als auch Mailchimp Entwickler Folgen dem gleichen tutorial Hinzugefügt, gleiche Berechtigung und nun auch unsere app hat doppelte Berechtigung.
So, ich entfernen, dass die Erlaubnis von meinem AndroidManifest und jetzt bin ich in der Lage zu installieren die app auf meinem tester das Telefon. Ich Teste die GCM-Nachricht durch senden von Paket zu GCM-server von meinem php-Skript und app noch GCM-Nachricht, wie es war.
So, wird es eine andere Frage, weil die fehlende Erlaubnis und was ist der Punkt, dass diese Erlaubnis überhaupt? (denn ohne Sie, meine app noch GCM-Nachricht)
Meine Sorge ist, wenn unsere app ist mit einem plugin/Bibliothek, die erforderliche Berechtigung. Wir werden nicht in der Lage, installieren Sie unsere app auf Lollipop-Gerät, wenn es eine andere installierte app, die unter Verwendung der gleichen Bibliothek, nicht wahr?
-- HINWEIS --
Ich schon gelesen, diese Frage, einige Leute empfehlen das gleiche zu, was ich Tat, Berechtigung entfernen. Aber niemand spricht über das, was geschehen wird, wenn wir es tun, oder warum haben wir, um es hinzuzufügen.
INSTALL_FAILED_DUPLICATE_PERMISSION... C2D_MESSAGE
-- EDIT 1 --
Ich ging zurück zu den Tutorials, das tutorial war richtig, es war meine falsche Umsetzung
Ich (und Mailchimp-Entwickler) hinzufügen sollte, die Erlaubnis mit dem Namen unseres app package + ".die Genehmigung.C2D_MESSAGE" statt nur kopieren und einfügen, com.Beispiel.gcm.die Genehmigung.C2D_MESSAGE
<permission android:name="com.mycompany.myappname.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
Aber, diese Erhöhung eine weitere Frage an mich, tutorial, sagte, dass, wenn wir nicht fügen Sie diese Berechtigung oder der name entspricht nicht dem Muster, app wird nicht die Botschaft.Aber ich bekam die Meldung, wenn ich testen auch wenn ich zu entfernen dieses pemission... komisch.
seine nicht klar aus dem EDIT 1, sollten wir die Verwendung von string mit ...C2D_MESSAGE oder ...C2D_MESSAGE android:protectionLevel="Unterschrift"
Ich habe gerade löst sich mein Problem durch die deinstallation der vorherigen version der app, die unterzeichnet wurde mit einem release-key und nicht meine Debuggen von android studio
Das Problem ist einfach, das sample-code von Google sagt, dass wir hinzufügen müssen, um diese Berechtigung. Das problem ist, dass einige devs kopieren Sie den code aus dem tutorial und fügen Sie ihn in Ihre AndroidManifest.xml wie ich es Tat. Das Thema wird nie zu erhöhen, bis Sie versuchen, die Anwendung zu installieren (mit copy & paste-code), aber Ihr Telefon hat bereits eine andere Anwendung von einem anderen Entwickler, der auch kopieren & fügen Sie den gleichen code. Dies führt in Situationen, in denen man Telefon hat 2 apps, hat doppelte Berechtigung. Um dies zu beheben, wir sollten Lesen Sie die Anleitung sorgfältig.
Ich Stand vor dem gleichen Problem mit einem gemeinsamen cordova-plugins. Ich verstehe, Sie haben Ihr Problem gelöst, aber nur für den Fall, andere wollen wissen, die Lösung. Verwenden Sie ${applicationId} anstelle des tatsächlichen Namen im androidmanifest. < - permission android:name="${applicationId}.die Genehmigung.C2D_MESSAGE" android:protectionLevel="Signatur"/> <uses-permission android:name="${applicationId}.die Genehmigung.C2D_MESSAGE"/>
InformationsquelleAutor Tar_Tw45 | 2015-01-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie beschrieben in INSTALL_FAILED_DUPLICATE_PERMISSION... C2D_MESSAGE , sollten Sie
${applicationId}
stattdessen eine statische Anwendungs-id, die in der AndroidManifest.Beispiel:
Es wird dein problem lösen und wenn Sie beginnen, mit Geschmack alles perfekt funktionieren wird, auch. 😉
InformationsquelleAutor JannGabriel
Ändern Sie Ihr Paket Namen zu einigen anderen package-Namen, statt Sie zu löschen, Berechtigungen.
zu
InformationsquelleAutor RajaReddy PolamReddy
Android 5.0. Sie haben Multi-User -, so müssen Sie die Deinstallation für alle Benutzer
Folgende Schritte:
Nach Der Deinstallation Der App. Sie können finden, dass Ihre app den Namen in der Liste der Heruntergeladenen Apps Tab.
Gehen Sie zu Einstellungen->Apps.
An der Unterseite der Liste, die Sie gefunden YourApp mit "NICHT INSTALLIERT" Tag -> Öffnen ->
Klicken Sie auf die Option Menü, und Wählen Sie "Deinstallieren Sie alle Benutzer".
Nach diesem Prozess, den Sie erfolgreich installieren Sie die neue app und läuft gut.
InformationsquelleAutor hoa.nguyen.VN