ADB経由でAndroidアプリをインストール中「INSTALL_FAILED_DUPLICATE_PERMISSION」エラー出たときの2つの対処方法

ADB経由でAndroidアプリ(apkファイル。以下、アプリ略す)をAndroid端末にインストールしていたら以下のようなエラーが出ました。

Failure [INSTALL_FAILED_DUPLICATE_PERMISSION perm=アプリのパッケージ名.permission.C2D_MESSAGE pkg=アプリのパッケージ名]

ネットの記事を見る限りでは、AndroidManifest.xmlファイルの「アプリのパッケージ名」を「${applicationId}」に置き換える方法が解説されていますが、実はその方法では解決しないことがありました。

今回は、「INSTALL_FAILED_DUPLICATE_PERMISSION」エラーが出たときの2つの解消方法を解説します。

解消方法1・パッケージ名の重複を修正する

おそらくネット上で「ADB INSTALL_FAILED_DUPLICATE_PERMISSION」で検索すると、次のような解決方法が沢山出てくるかと思います。

■パッケージ名の部分を「${applicationId}」に置き換える。

以下のようなエラーが出たら、

Failure [INSTALL_FAILED_DUPLICATE_PERMISSION perm=アプリのパッケージ名.permission.C2D_MESSAGE pkg=アプリのパッケージ名]

エラーの内容から、「同じアプリを2つ以上インストールできませんよ」と言っているようです。

このようなときは、AndroidManifest.xmlのパッケージ部分(以下の例だと「your.pkg」の部分)を

${applicationId}に置き換えることで解決します。

■変更前
<permission
    android:name="your.pkg.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />
<uses-permission android:name="your.pkg.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />


■変更後
<permission
    android:name="${applicationId}.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

しかし、私の場合は解決しませんでした。

解決しない場合は、次の解消方法で解決する可能性があります。

解決方法2・ゲストユーザがアプリをインストールしていた

私が使っていた端末は、ASUSの「ZenFone_2_ZE551ML」ですが、この端末は、実はMacやWindowsのように複数のアカウント(オーナーユーザ、ゲストユーザのような感じ)を作って使うことができます。

私は、ADB経由でアプリをインストールするとき、オーナーユーザとして端末を使っていたのですが、なぜかゲストユーザ側にアプリがインストールされていました。

つまり以下の状態になっていました

・オーナーユーザ

 アプリのインストールなし

・ゲストユーザ

 アプリのインストールあり

ゲストユーザ側にアプリが存在していたため、「INSTALL_FAILED_DUPLICATE_PERMISSION」エラーが発生したのです。

よって、ゲストユーザ側にあるアプリを消したら無事にアプリをインストールできるようになりました。

意外に、はまりました。

この不具合のために無駄にした時間は2時間。

まとめ

まさか、1つの端末に自分以外のユーザがアプリをインストールしているとは思いませんでした。もし、エラーメッセージの通りに解消しているのに、うまく動かなかったら自分以外のユーザの存在を疑っても良いかもしれません。

1人では解決できない問題が発生したら詳しい人に相談してみよう【タイムチケット】

スポンサーリンク
スポンサー




スポンサー




シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサー




コメント

  1. hikage0521 より:

    『ADB INSTALL_FAILED_DUPLICATE_PERMISSION』について問い合わせた方へ

    なぜかメールが届かなかったようなので、こちらに回答を書きます。

    ブログを読んで頂きありがとうございます。
    問題が解決できるかわかりませんが、私なりに思いつくポイントを挙げさせていただきます。

    「Youtubeアプリ」ですが、こちらは以下のGoogle Playに公開されているYoutubeアプリのことを指しますか?

    https://play.google.com/store/apps/details?id=com.google.android.youtube&hl=ja&gl=US

    ※「com.google.android.youtube」の部分がパッケージ名に相当します。念の為記載します。

    そして、YoutubeアプリのapkファイルをADBを使って端末にインストールすることでよろしいですか?

    もしそうだとしたら、『ADB INSTALL_FAILED_DUPLICATE_PERMISSION』エラーになる
    理由の多くが、Youtubeアプリ(厳密に言うと「com.google.android.youtube」)がすでにインストールされていることです。
    まずは、Youtubeアプリがすでにインストールされていないか確認してみてください。

    インストールされているアプリ(パッケージ名)の一覧を表示するコマンド
    adb shell pm list packages

    ちなみに、Youtubeアプリ(Googleさんが作成したと仮定)は、Googleさんが作成しているため、パッケージ名は変更できません。
    ブログでパッケージ名の変更について触れていたのは、自分でアプリを自作していることを前提にしていたためです。

    Youtubeアプリがインストールされていなくて、エラーが出る場合は、
    端末自体に何かしらの問題が起きていると思われます。
    問題の切り分けに、Youtubeアプリ以外のapkファイルがインストールできるかなど試してみてはいかがでしょうか?

    以上、私が分かる範囲にて回答させていただきます。
    参考になればと思います。