287

apkを再インストールしようとしました

$adb install -r new.apk

そして、それはエラーを示しています:

Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]

1 つの解決策は、new.apk をアンインストールしてからインストールすることです。これは正常に機能します。

しかし、アンインストールせずにapkを再構築して再インストールできるかどうか疑問に思っています。例えば。AndroidManifest.xml の一部の構成を変更するか、APK に署名しないなど。

「INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES」の意味をすべて教えていただければ幸いです。

4

16 に答える 16

327

これは、アプリケーションの新しいコピー (開発マシン上) が、アプリケーションの古いコピー (デバイス/エミュレーターにインストールされたもの) とは異なる署名キーで署名されたことを意味します。たとえば、これがデバイスの場合、別の開発マシン (たとえば、他の開発者のマシン) から古いコピーを配置した可能性があります。または、古いものは製品キーで署名され、新しいものはデバッグ キーで署名されます。

于 2010-07-06T11:36:31.360 に答える
50

新しい Xoom でテストしているときに、これに遭遇しました。以前に Marketplace からアプリをインストールしました。後でアプリの新しいバージョンをテストしようとしているときに、このエラーに遭遇しました。

Marketplace経由でインストールされたアプリを削除して修正しました(押したままゴミ箱にドラッグするだけです)。その後、問題なく開発バージョンをデプロイできました。

于 2011-03-16T15:14:46.497 に答える
24

これは、チームの別の開発者が、私が展開しようとしていたハードウェア デバイスでアプリを構築したときに起こりました。ハードウェアからアプリをアンインストールすると、問題が解決しました。

于 2012-09-10T21:32:28.527 に答える
22

これは、adb を使用してデバイスからアプリをアンインストールするコマンドです。

adb uninstall <package name>
于 2014-08-13T13:50:30.453 に答える
9

元の APK をアンインストールした後でもこのエラーが発生し、不可解でした。最後に、Nexus 7 でテスト用に複数のユーザーをセットアップしたこと、およびアプリがまだ他のユーザーの 1 人にインストールされていることに気付きました。すべてのユーザーに対してアンインストールすると、エラーはなくなりました。

于 2013-10-16T14:52:23.017 に答える
6

インストールされていた古いバージョンを削除せずに、Eclipseを介してデバイスでデバッグできるように、更新のコーディング中にパッケージ名を変更しました。再インストールしようとしたときに使用していたパッケージ名を元に戻さずに、これと同じエラーが発生しました。同じパッケージ名を使用すると、再インストールは成功しました。

于 2012-09-09T07:49:36.913 に答える
3

デバイスから古いビルドを削除して、同じものを再インストールするだけです。device.keystore はデバイスに既に存在するため、ビルドをアンインストールして APK を再インストールするだけです。

ありがとう

于 2014-10-20T13:53:23.283 に答える
3

同様のエラーが発生した別のユースケースに直面しました。最初にエラーが発生したとき、パニックになり、削除/data/data/{package.name} した後、試してみましたが、問題はまだ存在していました。次に、アンインストールを試みましたが、失敗しました。

次に、存在するapkファイルを削除し/system/app(ルートアクセスが必要)、アンインストールを試みましたが、成功しました。

その後、apkを再インストールしてみましたが、うまくいきました。

于 2013-01-21T07:27:23.410 に答える
2

出力ウィンドウに "Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]" というエラーが表示されて Andorid デバイスまたはエミュレーターへの展開が失敗した場合は、単にデバイスまたはエミュレーター上の既存のアプリを削除して再展開します。デバッグ ビルドはデバッグ証明書を使用し、リリース ビルドは構成済みの証明書を使用します。このエラーは、デバイスにインストールされているアプリの証明書が、インストールしようとしているものと異なることを示しているだけです。開発以外 (アプリ ストア) のシナリオでは、これは、デバイスに安全にインストールできないアプリが破損しているか、その他の方法で変更されていることを示している可能性があります。

于 2016-05-06T17:33:11.493 に答える
0

検証はパッケージの名前に基づいているため、config.xml またはマニフェスト ファイル内のパッケージ名を別の名前に変更できます。

アプリを公開するときは、名前を元に戻すことを忘れないでください。

于 2015-12-04T00:22:34.780 に答える
0

上から何もうまくいきませんでした。私にとっての問題は、Android-support-v7-appcompat の Java ビルド パスに間違ったソースが含まれていたことです。プロジェクト>ビルドパス>ビルドパスの構成>に移動すると。[ソース] タブで、 android-support-v7-appcompat/gen 、 android-support-v7-appcompat/libs 、 android-support-v7-appcompat/src 以外に何もないことを確認します。[OK] をクリックすると、動作するはずです。

于 2014-06-27T15:23:01.050 に答える
0

今日も同じエラーが発生しましたが、問題はまったく同じではありませんでした。VirtualBoxにインストールされた Android で ADB を使用しています。アプリのさまざまなバージョン (署名済み/未署名、デバッグ/リリース モード) をインストールしようとしたところ、次の 2 つのエラーが交互に発生しました:INSTALL_FAILED_UID_CHANGEDINSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES.

さて、 を見ると/data/data/{package.name}、アプリをアンインストールした後も残っているファイルがたくさん見つかりました。I rm -rf/O エラーが発生しました。

これに対する解決策は次のとおりです。

  • VM をシャットダウンする
  • vdfuse(読み取り/書き込み)で VDI イメージをマウントします。
  • Partition1で画像ファイルを修復しますe2fsck
  • VM のアンマウントと再起動
于 2014-10-08T17:39:15.267 に答える