adb install のエラー一覧: INSTALL_FAILED の意味と対処法
adb install のエラーコードごとに意味と対処法を解説します。INSTALL_FAILED_VERSION_DOWNGRADE、UPDATE_INCOMPATIBLE、NO_MATCHING_ABIS、USER_RESTRICTED、分割 APK まで網羅しています。
adb install app.apk の結果は、Success か Failure [コード: メッセージ] のどちらかです。このコードを見れば、何が問題なのかが正確に分かります。ここでは、よく出会うコードの意味と、それぞれの対処法を紹介します。
早見表
| コード | 意味 | 対処法 |
|---|---|---|
INSTALL_FAILED_ALREADY_EXISTS | アプリがすでにインストールされている | adb install -r app.apk |
INSTALL_FAILED_VERSION_DOWNGRADE | インストール済みのアプリよりバージョンコードが低い | adb install -r -d app.apk、または先にアンインストール |
INSTALL_FAILED_UPDATE_INCOMPATIBLE | パッケージ名は同じだが署名鍵が違う | インストール済みのアプリを先にアンインストール |
INSTALL_PARSE_FAILED_NO_CERTIFICATES | APK が署名されていない | 署名する、または署名済みの debug / release APK をビルドする |
INSTALL_FAILED_NO_MATCHING_ABIS | ネイティブコードの CPU の種類が違う | スマホの ABI 向けにビルドされた APK を使う |
INSTALL_FAILED_OLDER_SDK | スマホの Android が古すぎる | minSdkVersion が低いビルドを使う |
INSTALL_FAILED_TEST_ONLY | APK に testOnly が付いている | adb install -t app.apk |
INSTALL_FAILED_INSUFFICIENT_STORAGE | 空き容量が足りない | ストレージを空ける |
INSTALL_FAILED_USER_RESTRICTED | スマホがインストールをブロックした | USB 経由のインストールを許可し、スマホで確認する |
INSTALL_FAILED_MISSING_SPLIT | 分割 APK の一部が足りない | すべてのファイルをまとめてインストール |
よくあるエラーの詳細
UPDATE_INCOMPATIBLE: 署名が一致しない
同じパッケージ名のアプリが、別の鍵で署名された状態ですでにインストールされています。たとえば、テスト中のアプリの Play ストア版が入っている場合です。Android はそのアプリのデータを守るため、上書きを許可しません。
adb uninstall com.example.app
adb install app.apkアンインストールすると、スマホ上のそのアプリのデータは削除されます。
VERSION_DOWNGRADE
新しいビルドの上に古いビルドを入れようとしています。-d で許可できます。
adb install -r -d app.apk最近の Android では、これが使えるのはデバッグ可能なビルドだけです。それ以外の場合は先にアンインストールしてください。
NO_MATCHING_ABIS
APK に含まれるネイティブライブラリが、スマホのプロセッサに対応していません。たとえば ARM のスマホに x86_64 専用のビルドを入れようとした場合や、32 ビットの Android で動くスマホやテレビに arm64-v8a 専用のビルドを入れようとした場合です。スマホが対応している ABI を確認します。
adb shell getprop ro.product.cpu.abilistそのうえで、対応するバリアントかユニバーサル APK をビルドまたはダウンロードしてください。
USER_RESTRICTED
スマホがインストールを拒否しました。Xiaomi、Redmi、POCO では、開発者向けオプションで USB 経由でインストール をオンにし、スマホに表示される確認画面で インストール をタップしてください。詳しくは Xiaomi の USB デバッグとセキュリティ設定 をご覧ください。仕事用プロファイルやペアレンタル コントロールがインストールをブロックすることもあります。
分割 APK と App Bundle
Android App Bundle から配布されるアプリは、複数の APK ファイル(ベースと分割ファイル)で構成されています。まとめて一度にインストールします。
adb install-multiple base.apk split_config.arm64_v8a.apk split_config.en.apk.aab ファイルは直接インストールできません。先に bundletool で APK を生成してください。
Play プロテクトがインストールをブロックする
Google Play プロテクトが不明なアプリについて警告し、インストールが止まることがあります。スマホの画面を確認し、その APK を信頼できる場合にだけインストールを続けてください。
ブラウザから APK をインストールする
ADBKit の Install APK パネルは、スマホ上で同じインストールを実行し、失敗時のコードも分かりやすい言葉で結果を表示します。インストール済みのアプリを更新するには Replace existing app にチェックを入れます(-r と同じです)。USB でも、ADBKit エージェントを使った Wi-Fi でも使え、APK はパソコンから直接スマホに送られます。
インストールについて詳しくは ADB で APK をインストールする方法 をご覧ください。