INSTALL_FAILED_DUPLICATE_PERMISSION ... C2D_MESSAGE

? AndroidUser99 @ | Original: StackOverFlow

私は私のアプリは、Googleの通知を使用していて、今まで私がマニフェストでこれを持っていた:

<!-- GCM -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <!-- GCM requires a Google account. -->
<uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- Keeps the processor from sleeping when a message is received. --> 
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <!-- This app has permission to register and receive data message. --> 

<!-- Creates a custom permission so only this app can receive its messages. NOTE: APP_PACKAGE.permission.C2D_MESSAGE -->   
<permission android:name="com.myapp.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.myapp.permission.C2D_MESSAGE" />    
<!-- END GCM -->

私はAndroid 5.0に私のネクサス7を更新したまで、それは完全に働いた。 私は、Eclipseを使ってこのデバイスでアプリをインストールしようと今とき、私はこのエラーを取得:

INSTALL_FAILED_DUPLICATE_PERMISSIONパーマ= com.myapp.permission.C2D_MESSAGE PKG = com.myapp

私は...間違っているものを理解していないそれは、Android 5.0まで完璧に仕事をしていた。 私は「 ____ 」と「 ____ 」が、私は、元GoogleのGCMガイドからそのコードをコピーしたので、それは罰金である必要があり、私は2つのラインで「 ____ 」使用していることを知っている。



Top 5 Respuesta

1x-code @

私はAndroid -21のカスタム署名権限を持つ同じ問題を抱えていたと私は完全なアンインストールをしていたことを確認することによってそれを解決した。

これが発生し、エッジケースです:

An application defines a custom permission using signature level security You attempt to update the installed app with a version signed with a different key The test device is running Android 21 or newer with support for multiple users Command line example

ここで問題とどのようにそれを解決するためにを実証するコマンドライン転写産物です。この時点で、デバッグバージョンがインストールされていると私は、解除キーで署名された製品版をインストールしようとしています:

C2D_MESSAGE
Eclipse example

(リリースビルドが既にインストールされている場合には、Eclipseからデバッグビルドをインストールしようとして)反対方向に行く、私は次のようなダイアログが出ます:

INSTALL_FAILED_DUPLICATE_PERMISSION ... C2D_MESSAGE

あなたはこの時点でyesと答えた場合は成功しますインストールしてください。

Device example

別の答えで指摘したように、あなたも、デバイスの設定でアプリ情報ページに移動オーバーフローメニューをクリックし、このエラーを防止するために、 「すべてのユーザーに対してアンインストール」を選択することができます。



2Preethi Rao @

このエラーを与えている間、それは明確に許可が拒否されたため、そのうちのアプリのパッケージ名を言及します。そして、ちょうどアプリケーションは、我々は、以下のステップを行うことができ、問題を解決するために、問題を解決することはできませんアンインストール

2.設定に1.goは、アプリケーションのリスト5.クリックでアンインストールアプリケーションを見ることができ、ダウンロードしたアプリのリスト4.you 3.外出をアプリに、すべてのユーザーオプションのアンインストールの詳細オプション6.clickに行く

問題は解決:D

3Yasir @

以前は、異なるシグネチャを持つアプリは、デバイス上で発見されたと言っていました。 IDEからインストールするとき、それはまた、あなたがそれをアンインストールしますか尋ねるだろうか?

しかし、私はAndroid 5.0から、彼らは、アンインストールの理由を変更していると思います。あなたが同じ署名でアプリをインストールしている場合は発生しません

4Giuseppe @

ADBとのアプリをアンインストールしよう:

permission
5TacB0sS @

CommonsWareは正しいですが、私の意見では、これは言っても(バグ)劣悪な方法は次のとおりです。 "デバイスにインストールAPKその後、別の証明書をインストールしようとしている新しいもので署名されている」 。

これはおそらく、過去にそれが原因で誤った証明書へのデバイスからアプリをアンインストールするかどうかを尋ねるために使用するので、新しいバグです。

それであってもよいほど苦痛なソリューションは、手動でのアプリにそれをアンインストールすることであろう。

また、我々はチーム開発のために何をやったか、私たちは私たちのリポジトリへのデバッグキーストア、などのようにそれを使用するように、点のGradleを追加しました:

uses-permission

チームメンバー間でデバイスを渡すときそして今、我々はすべて同じデバッグ証明書を使用するので、全く問題はありません。 :)