デバイスにコンパイル済みの.apkをインストールしようとすると、INSTALL_FAILED_UPDATE_INCOMPATIBLE


291

CyanogenMod 9からTrebuchetランチャーをコンパイルし、adbでインストールしようとしました。

$ adb install out/target/product/generic/system/app/Trebuchet.apk
3986 KB/s (7870141 bytes in 1.928s)
    pkg: /data/local/tmp/Trebuchet.apk
Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]

CM9を搭載したNexus Sと、在庫JBを搭載したGalaxy Nexusを試してみました。このエラーが発生するのはなぜですか?

編集:私の場合、私はパッケージマネージャーでシステムパッケージを再インストールしようとしました。これはサポートされていないため、このエラーが発生します。エラーの原因は、ケースによって異なる場合があります。


2
マルチユーザー機能を備えた最新のデバイスで、アプリが他のユーザー用にインストールされているかどうかを確認します(つまり、ゲストログイン)。私の会社のテスターがこの問題に1時間苦労していました。彼が私のところに来たとき、同じデバイスがそのデバイスの異なるゲストログインにインストールされていることを確認するのに5〜10分かかりました。ホーム画面に表示されるか、設定に表示されない
Shirish Herwade

回答:


500

インストールするアプリケーションがすでにインストールされていることを意味します。古いものを削除して再試行してください。


27
私にとってはうまくいきましたが、私もまた再起動する必要がありました。
droidgren 2013

28
他の場所には表示されなかったため、[設定]-> [アプリケーションの管理]に移動してアプリを見つけ、そこからアンインストールすることを選択する必要がありました。
David Conlisk 2014

23
すべてのユーザーアカウントからアンインストールする必要がある場合もあります(私のNexus 10には3人のユーザーがいました)。
タイラー・カイザー、2015

1
@TylerKiser頭を上げてくれてありがとう。
Jacob Holloway

1
既存のアプリを更新しようとするとどうなりますか?これにより、最後に保存したアプリがすべてローカルで削除されます
miracle-doh

184

試す

adb uninstall package-name

わたしにはできる。Titanium Backupを使用してアプリを削除しました。ただし、Titaniumのバックアップでアプリが完全に削除されたとは思いません。


1
DevDrawerを使用して同じことがわかりました。これはうまくいきました。
tir38 2015

1
ありがとう!これは、説明できない大きな頭痛から私を救いました。どのようにしてこの状態になったのかわかりません... Xamarin StudioとVisual Studioでアプリをデバッグしていますが、そうでない場合は問題なく動作していました...まあ。
ジェイミー

1
受け入れられた回答に関する他のすべてが失敗したとき...これはうまくいきました。
DennisWelu 2015

すごい!シンプルで簡単。このソリューションでは再起動する必要はありません。
taciosd 2015

わたしにはできる。手動でアンインストールして再起動しようとしたところ、何も変更されませんでした。adbコマンドを使用した場合のみ機能します。ありがとうございました。
ricky.tribbia

101

この問題を回避するには、アプリケーションをアンインストールするだけで十分です。

INSTALL_FAILED_UPDATE_INCOMPATIBLE

しかし、メッセージがアンインストールされることさえありますが、それはAndroid OS 5.0以降で発生するため、これが解決策です。

Settings>に移動するAppsと、次のメッセージが表示されたアプリが見つかります。

「このユーザーにはインストールされていません」 ここに画像の説明を入力してください

すべてのユーザーに対して手動でアンインストールする必要があります!その後、コンパイルされたアプリケーションを問題なくインストールできます。

ここに画像の説明を入力してください

別のオプション:

  • 古いアプリケーションを削除して、再度インストールしてください。
  • Android Debug Bridgeコマンドを使用します。

    adb uninstall [パッケージ名]


2
ありがとうございました!これは私が必要としたものです。なぜ、いつ彼らはこの方法でそれを始めたのですか?
Nick

どうやらOS 5.0以降
Jorgesys 2015年

1
最初は、[設定]-> [アプリ]でアンインストールしたアプリを見つけることができませんでした。Lollipop 5.1.1では、アンインストールされたアプリはアプリ名ではなくパッケージ名で表示されることがわかりました。したがって、adbのアンインストールを実行してもadbのインストールが失敗する場合は、パッケージ名の下でアンインストールしたアプリを探します。したがって、com.acme.wileycoyoteは、「w」ではなく「c」の下にアルファベット順にリストされます。
Yojimbo 2016年

ありがとうございます。私の電話には[すべてのユーザーからアンインストールする]オプションがありません。すべてのユーザーにログインしてアンインストールします...
DawnYu

1
ユーザーが1人の場合の「すべてのユーザー」-ME !!! とにかく、それは機能します-賛成です。
WindRider 2017

21

機能する2つの方法

1:モバイルデバイスから手動でアプリをアンインストールする

2:コマンドプロンプトを開き、パスをトレースして、adb次のコマンドを実行します

adb uninstall your_package_name

2
ディスプレイのないデバイスで機能する唯一の方法。
DenisKolodin 2016

1
例:「adb uninstall net.gavin.hello」の場合、パッケージ名はAndroidManifest.xmlに「package = "net.gavin.hello」として
Gavin Simpson

9

パッケージの名前を変更しただけでうまくいきました。

または、Ionicを使用している場合、アプリケーションを削除して再試行できます。これは、デプロイしているアプリが同じビルドからのものではないことをionicが検出したときに発生します。PCから変更したときによく起こります。


他には何もうまくいきませんでした。素晴らしいアイデアをありがとう!
Ken Pespisa 2014年

2
作業が多すぎます。apkをバックアップして削除し、再インストールします。
pevik

Android 6.0.1では動作しませんでした。デバイス上のアプリを削除して、同じパッケージを再インストールする必要がありました。
kakyo

13
「パッケージの名前を変更しただけ」、これは回避策ではなく、実際には別のアプリケーションを作成しています。
Jorgesys、2018

8
  1. 移動:adbフォルダー\ sdk \ platform-tools \
  2. タイプcmd
  3. タイプ:コマンドウィンドウでのadb remount
  4. adbシェル
  5. su
  6. rm /system/app/YourApp.apk
  7. デバイスを再起動します

再マウントは何ですか?このキープリリースとデバッグバージョンを使用して、簡単にマウントおよび再マウントできますか?
piotrek1543

2
ユーザーのAPKがに格納されていないとあまり意味がありません/system/appが、/data/app
m0skit0

@ piotrek1543は、adb remountシステムパーティションをデフォルトの読み取り専用ではなく読み取り/書き込みとして再マウントします。
m0skit0

8

問題は、なぜこのエラーが発生するのかということでした。アンインストールするとこの問題は解決しますが、私の場合、apkのコンパイル済みバージョンをインストールしているときに問題が発生しました。アプリケーションのアップデートをビルドしようとしていました。だから私がやったことは、署名済みのapkをビルドしてから、apkをインストールしようとして、apkを完全にインストールしたことです。そのため、古いAPKを削除するのではなく、新しいアップデートに署名してからインストールする必要がありました。


1
こっちも一緒。更新プロセスをテストしてみてください。したがって、アンインストールはオプションではありません。
マーティン

6

これはおそらく、デバイスに複数のユーザーがいて、一方のアプリを削除したためです(apkを他のユーザーに残したままにします)。ます)。

私はすべてのアカウントを削除しましたが、その後は機能しました。


Googleアカウントですか?
CACuzcatlan 2015

はい、まさに私が意味することです。
neteinstein 2015

5

これは、別の証明書でアプリケーションに署名した場合に発生する可能性があります。いつでも使用できます

adb install -r myapk.apk

デバイス上の既存のapkを上書きしますが、インストールされたapkとは異なる証明書で新しいapkに署名した場合でも、エラーが発生します。

そのシナリオでは、インストールを試みる前にデバイスからapkをアンインストールする必要があります。ただし、元の署名が特定の開発者APIに関連付けられている可能性があるため、これはアプリケーションにも影響を与える可能性があり、新しい認証情報でコンソールを更新する必要がある場合があります。


4

Astroファイルマネージャーをインストールして、以前のバージョンのapk-fileを検索し、SDカードでそれを見つけて、Astroファイルマネージャーを使用してapk-fileを削除しました。


4

デバイスが複数のユーザーをサポートしている場合は、各アカウントのアプリも削除する必要がある場合があります。

私は通常adbを使用し、それはトリックを行います adb uninstall <your-package-name>


4

APKがAndroid.mkファイルを使用してプロジェクトに組み込まれている場合。おそらく署名証明書が変更されたためです。

私の問題では、LOCAL_CERTIFICATE:= platformを追加しています。元のapkはこのタグなしで署名されているため。


これは実際にはコメントであり、回答ではありません。もう少し担当者がいると、コメントを投稿できるようになります
Enamul Hassan

2

私の場合、デバイスマネージャーやAstroで見つけられるバージョンのアプリはありませんでした。

私がやったことは:

1)アプリストアからアプリの最新バージョンをダウンロードします

2)デバイスを再起動するまで、アプリはまだデバイスマネージャーに表示されませんでした。

3)アプリをデバイスマネージャーから削除する

4)プロジェクトをもう一度実行する

5)すべてが機能する

これが誰かを助けることを願っています


2

C:\ android-sdk \ platform-tools \ adb.exe:コマンドが終了コード1で失敗しました

エラー出力:adb:app \ platforms \ android \ app \ build \ outputs \ apk \ debug \ app-debug.apkのインストールに失敗:失敗[INSTALL_FAILED_UPDATE_INCOMPATIBLE:Package com.example。app1署名が以前にインストールされたバージョンと一致しません。無視!]

解決:

すでにアプリapp1が電話にインストールされています(ほとんどの場合、プレイコンソールからダウンロードするか、アップロードキーを変更します)
アプリをアンインストールします。

詳細:

アップロードキーを使用してこのアプリを既にPlayストアにアップロードしていて、Play Consoleに独自の署名を適用している可能性があります。そのため、Google Playからダウンロードした携帯電話のアプリには、アップロードキーと同じ署名がありません。

アプリをアンインストールすると、Playストアバージョンのアプリがなくなるため、新しいバージョンを電話にインストールするときに不一致になります。

お役に立てば幸いです。


1

設定/アプリ/アプリを検索してアンインストールしてください...

それは私のために働いた


1
  1. 設定/アプリ/アプリを検索してアンインストールしてください...
  2. コマンドプロンプトを開き、「adb uninstall」

それは私のために働いた


1

MIUIユーザーの場合、通常のUSBデバッグオプションとは別に、これらの設定も必ず有効にしてください。

USB経由でインストール
USBデバッグ(セキュリティ設定)

次に、アプリを再度インストールするときにプロンプ​​トを受け入れます。


1

私は同じ問題を得て、それを修正するために以下を行いました。

  1. [設定]> [ストレージ]> [キャッシュデータを消去]
  2. 設定>アプリ>そこに表示されているアプリをアンインストールします。アプリをアンインストールしましたが、表示されていました。
  3. 再起動すると、すべてがうまくいきました。

3
2番目のポイントが役立ちました。私の場合、アプリは現在のユーザーにはインストールされませんでしたが、他のユーザーにはインストールされました。そこで、アプリリストと詳細ページ内のアプリをクリックし、[詳細]ボタン(縦に3つ並んだドット)をクリックしました。そこで、「すべてのユーザーからアンインストールする」オプションがありました。それは私のためにそれをしました。ありがとう!
Harisewak 2018

1

私はこれをデバッグするのに1時間費やしましたが、電話ではなくエミュレーターに接続されていることに気付きました。そのため、スマートフォンでアプリを正常に削除したにもかかわらず、まだ失敗していました。ばかげた間違いですが、多分これは誰かを助けるでしょう。


0

私の場合、Playstoreからアプリケーションをインストールし、EclipseまたはAndroid Studioから実行しようとした後許可されていないAPKに再度インストールしようとしました。

だからまず、そのSiged APKをアンインストールする必要がありますする必要があり、その後に試す必要があります。

ありがとうございました。


0

RankoR @は、別のコンピューターからアプリケーションをインストールしておく必要があります。私の場合、問題が発生した場所です..あなたがする必要があるのは、アプリケーションをアンインストールして再インストールするか、作業しているコンピュータから実行することだけです..これは遅い返信かもしれませんが、誰かを助けるでしょう..感謝


0

Instant Runを使用して開発ビルドをインストールし、Google Playからアンインストールしたとき、それは私に起こりました。なんらかの理由で、Instant Runからのデータがまだデバイスにあり、アプリを再度インストール/アンインストールできません。

それを修正する唯一の方法:-Android StudioでInstant Runを無効にします-Android Studioからインストールします(ここからのみ機能します)-アプリをアンインストールします

これで、Google Playまたはadbからインストールできるようになりました。



0

マニフェストファイルに次の行がある場合-

android:sharedUserId = "android.uid.system"

このエラーの原因です!この行にコメントを入力してください。


0

私のケースについて言及している人がいないので、追加します。あるモード(Devなど)でアプリをビルドし、それを別のモード(例:Production)でオーバーライドしようとすると発生します。

解決策は他の場合と同じです-デバイス/シミュレーターでアプリを削除して、再度実行します。


0

最初とは別のコンピューターからデバッグしようとすると、恐ろしいINSTALL_FAILED_UPDATE_INCOMPATIBLEエラーが発生します。ただし、アプリをアンインストールしてデータを失うことなく続行する方法があります。

必要なdebug.keystoreを転送する方法を確認して、「デバイスには同じアプリケーションで署名が異なるアプリケーションがすでにデバイスにあります。続行するには、既存のアプリケーションをアンインストールする必要があります。」というメッセージが表示されないようにするため。(そしてあなたのデータを失う)。Androidで同じdebug.keystoreを使用して別のマシンでアプリ更新するを参照してください


0

サムスンギャラクシー電話には、セキュアフォルダーと呼ばれる機能があります。

また、adb uninstall packagenameでは、セキュアフォルダーからアプリを削除できません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.