Androidアプリがインストールされていません。競合する署名を持つ同じ名前の既存のパッケージがすでにインストールされています


131

私のエミュレータで、プログラムでapkのアップグレードを行おうとすると、私は得ます:

Android App Not Install.

An existing package by the same name with a conflicting signature is already installed

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

私はまだこのアップグレードのテスト段階にあるので、ダウンロードするファイルは以前のバージョンの署名済みapkであり、問​​題なく動作するはずです。

提案から:競合する署名を持つ同じ名前の既存のパッケージがすでにインストールされていますエミュレーターをデバッグモードと通常モードの両方で実行しようとしましたが、どちらも機能しませんでした。

何が欠けているかについての考えはありますか?


1
インストール前に同じ署名を使用してAPKに署名する
Praveen Sharma

この問題は、署名またはキーストアファイルの不一致により生成され、ソリューションのリンクを見つけます。readyandroid.wordpress.com
Ready Android

回答:


97

問題は、APKの署名に使用されているキーです。デフォルトでは、IDEから直接実行してエミュレーターを開いている場合、エミュレーターにインストールされているAPKは、デバッグキーで署名されています(通常は〜/ .androidにインストールされています) /debug.keystore)、以前のAPKが現在使用しているものとは異なるキーで署名されている場合は、常に署名の競合が発生します。これを修正するには、まったく同じキーを使用して署名していることを確認してくださいどちらのAPKも、以前のAPKが別のSDKのデバッグキーで署名されていたとしても、キーは確実に異なります。

また、APKに署名する前にどのキーが使用されたのか正確にわからないが、アプリの新しいバージョンをインストールする場合は、以前のアプリケーションをアンインストールして、新しいものを再インストールできます。

お役に立てれば...

よろしく!


私はAPKに開発者以外の署名をして、エミュレーター内で手動でダウンロード/インストールします。その後、エミュレータは他の開発者以外の署名付きAPKをダウンロードし、アップグレードを試みます。これが機能する場合、私はあなたの答えを受け入れます。Thx
James Oravec 2013年

@MartinCazaresとにかくapkキーを取得する方法はありますか?アプリのデータを失わないようにするには?
ハイゼンベルク2015年

まあ、アプリをインストールした場合は、キーが必要ですが、それ以外の場合はどのようにAPKに署名しますか?以前のapkがあなたによって作成されていない場合は、そのapkの開発者にキーを尋ねる必要があります。それ以外に、apkの署名に使用されたキーを取得する方法がない
Martin Cazares

これを本当にありがとう!あなたは私の日と私のチームを救った!ハハ
ペロッツォ2018

1
PlaystoreのLIVEにアプリケーションがあり、テストデバイスにそのアプリをインストールし続けました。新しいバージョンのアプリを更新するために、アプリのbuild.gradleファイルの「versionno」と「versionname」を更新しています。今私は署名されたキーでリリースビルドを作成しましたが、エラーを通してそのビルドをインストールしようとしています:::競合する署名を持つ同じ名前の既存のパッケージがすでにインストールされています。そして、あまりインストールされていません。親切に助けてください。
タリットレイ

195

同じエラーメッセージが表示されましたが、これらの回答は役に立ちませんでした。4.3ネクサス7では、所有者ではないユーザーを使用していました。古いバージョンをアンインストールしましたが、同じメッセージが表示され続けました。

解決策:所有者としてログインし、[設定]-> [アプリ]に移動してから、[すべて]タブにスワイプする必要がありました。リストの一番下までスクロールして、「未インストール」のマークが付いた古いバージョンをリストします。それを選択し、右上隅の「設定」ボタンを押して、最後に「すべてのユーザーからアンインストール」します


2
「ダウンロード済み」から「すべて」のリストにスワイプして、アプリリストでそれを見つける必要がありました。
ShawnFeatherly 2014

1
お伝えしたように、一番下までスクロールしてください。「インストールされていない」アプリはアルファベット順にリストされていません
jmcmann 2014年

3
ありがとうございました!!!これは、テスト用のNexus 7を友人に貸した後の私の問題でもありました。キーが破損していると思いました...将来の混乱を減らすために、そのユーザーを削除しました。
mm2001

1
時間を節約できました。称賛。
Piyush Patel

2
ありがとう。すべてのユーザーでログインし、1つ
Ricardo

8
 Go to Settings > Apps, find and open the app info. Then, open the overflow menu (3 vertical dots), and choose Uninstall for all users.

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

[設定]> [アプリ]に移動し、アプリ情報を見つけて開きます。次に、オーバーフローメニュー(縦に3つ並んだドット)を開き、[すべてのユーザーに対してアンインストール]を選択します。


これは私を助けました-ありがとう。何らかの理由で、ホーム画面からアプリをアンインストールした後でも、2つのバージョンのアプリが表示されていました。
Joro Tenev

ありがとうJoro Tenev Voting Me
Keshav Gera 2018


5

署名済みAPKファイルと署名なしAPKファイルには違いがあります。最も可能性が高いのは、以前に署名していないことです。署名付きバージョンをインストールする前に、署名なしを削除する必要があります。これをどのように達成できるかは、正確なバージョンによって異なりますが、一般に、エミュレータで[設定]-> [アプリケーション]に移動し、アプリを長押しして、削除/削除/アンインストールします。


署名のないapkを作成し、署名のないapkをダウンロードして、それが解決するかどうかを確認します。解決する場合は、ハードウェアで署名済みapkをテストできます。これが事実なら、私は答えを受け入れます。
James Oravec 2013年

プログラム内からアップグレードを実行しようとしているため、手動でアンインストール/インストールを実行しても機能しません。
James Oravec 2013年

署名のないアプリのインストールを行ったときは、単にを取得しましたapp not installed。エミュレータの設定をAllow installation of apps from unknown sources確認しました。したがって、これは解決策ではないようです。
James Oravec 2013年

提案に賛成票を投じます。これは、最終的な解決策を得るのに役立ちました。ありがとう!
James Oravec 2013年

5

デバッグAPKを使用している場合、その署名に使用されるキーは

C:\Users\<user>\.android\debug.keystore

同じキーを使用する場合、インストール時に競合が発生しないはずです。


サンティアゴに感謝します。昨日、マシンのハードドライブをメカニカルドライブからソリッドステートドライブに変更したため、Windowsをアップグレードする必要があります。同じ問題に直面していたため、前のWindowsフォルダーからdebug.keystoreファイルを新しいフォルダーにコピーしました。問題が解決されるWindowsフォルダー:)
Arslan Sohail

答えてくれてありがとう。問題は実際に解決されたので、私は友人とプログラミングしています。デバッグキーを共有しているため、この問題は頻繁に発生しており、すべて正常です。
GustavoMagalhães2017

5

上記の解決策がうまくいかなかった場合は、次のようにしてください。

1)Appstoreからアプリをインストールします。
2)同じパッケージ名の更新バージョンの署名APKで更新します。

したがって、APKの場合、基本的に2種類あります。

1)オリジナルAPKとして知られるプレイストアにアップロードした。
2)派生APKとして知られるプレイストアからダウンロードします。

この場合、基本的には派生APKをダウンロードし、元のAPKで更新します。

Google Playストアの内部テストモードで新しい署名済みリリース済みAPKをアップロードして正常に機能させ、派生APKをダウンロードして更新シナリオを確認します。

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



1

デバッグに使用したデバイスにデバッグビルドとリリースビルドの両方がインストールされないという問題がありました。新しいバージョンをインストールしようとすると、同じメッセージが表示されます。唯一の回避策は、現在のバージョンをアンインストールして新しいバージョンをインストールすることでした。

Android StudioがインストールするAPKにマークを付けているようです。パッケージマネージャーを使用したインストールでは、デバッグ用にインストールされたバージョンと、Google Playや他の外部ソースからダウンロードされたバージョンが区別されます(これは、Eclipseを使用しているときには起こりませんでした)。


1

アプリケーションが正常にアンインストールされていない可能性があります。デバイスがこの場合、この方法を試すことができます。

まず、アプリケーションのパッケージ名を取得します(例: 'com.xxx.app')。ルートエクスプローラーを使用して、マニフェストファイルからそれを見つけることができます(REはファイルをデコードできます)。次に、このスクリプトを使用してアンインストールできます。

adb shell pm uninstall com.xxx.app // replace to package name that you want to remove

1

同じパッケージエラー:

  1. アプリに別の名前で新しいパッケージを作成します。
  2. 古いパッケージのすべてのファイルをコピーして新しいパッケージに貼り付けます。
  3. コードを保存します。
  4. 古いPackage And Cleanを削除して、プロジェクトを再ビルドします。

1.非常に2.短い3.可能性がある4.使用する5.説明。
ユンノシュ

1

ここに画像の説明を入力してください所有者としてログインし、[設定]-> [アプリ]に移動してから、[すべて]タブにスワイプする必要がありました。リストの一番下までスクロールして、「未インストール」のマークが付いた古いバージョンをリストします。それを選択し、右上隅の「設定」ボタンを押して、最後に「すべてのユーザーからアンインストール」します


それは私にとってはうまくいきましたが...私のウェブサイトからダウンロードしたときに、アプリは(少なくともダウンロードフォルダに)ダウンロードされません。エラーは報告されていません。ただ起こらない。携帯電話をコンピューターに接続すると、APKを携帯電話にコピーして、エラーを報告せずにインストールできます。
ロン・

0

AndroidManifiestでshareIdを変更/追加/削除したときにアプリケーションが更新されない別の理由が考えられます。

「android:sharedUserId」

こちらもご確認ください。

防止するには、現在または現在の要件にもかかわらず、アプリケーションでsharedUserIdを使用することをお勧めします。


0

上記をすべて試してもうまくいきませんでした。

アプリをアンインストールしても、新しいバージョンのアプリでも同じエラーが発生することがわかりました。

これが解決策です:設定->一般->アプリケーションマネージャ->アプリを選択->上部にある3つの点をクリック->すべてのユーザーからアンインストール

これを実行すると、実際にアンインストールされ、新しいバージョンをインストールできるようになります。

お役に立てれば。

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