私のエミュレータで、私がプログラムで私のapkのアップグレードをやろうとするとき。私は得ます:
Android App Not Install.
An existing package by the same name with a conflicting signature is already installed
私はまだこのアップグレードのテスト段階にあるので、私がダウンロードするファイルは何の問題もなく動作するはずだと思う前のバージョンの署名付きapkです。
の提案から: 既存の同名のパッケージに署名付きの署名がすでにインストールされています 私はデバッグモードと通常の両方でエミュレータを実行しようとしましたモード...どちらもうまくいきませんでした。
私が見逃していることについて何か考えはありますか?
問題は、デフォルトでIDEから直接実行してエミュレータを開いている場合、APKの署名に使用されていたキーです。エミュレータにインストールされているAPKは、デバッグキーで署名されています。 〜/ .Android/debug.keystore)にインストールされているので、以前のAPKが現在使用しているものとは異なる別のキーで署名されている場合は、常に署名の競合が発生します。前のAPKが別のSDKのデバッグキーを使用して署名されている場合でも、両方のAPKに署名するためのまったく同じキーです。キーは確実に異なります。
また、apkに署名するために以前にどのキーが使用されたのか正確にはわからず、新しいバージョンのアプリをインストールしたい場合は、前のアプリケーションをアンインストールして新しいものを再インストールするだけです。
お役に立てれば...
よろしく!
同じエラーメッセージが表示されましたが、これらの答えは役に立ちませんでした。 4.3 nexus 7では、所有者ではないユーザーを使用していました。古いバージョンをアンインストールしましたが、同じメッセージが表示され続けました。
解決策:所有者としてログインして[設定] - > [アプリ]に移動し、[すべて]タブにスワイプする必要がありました。リストの最後までスクロールして、古いバージョンが「インストールされていない」というマークを付けて表示されているところに移動します。それを選択し、右上隅にある「設定」ボタンを押して、最後に「すべてのユーザーのためにアンインストール」してください
キーストアファイルに煩わされたくない場合は、すべてのユーザーに対してパッケージを完全に削除してください。
デバイスをMac/PCに接続してadb uninstall <package>
を実行してください。
私のために働きました。
Debug apkを使用している場合、それに署名するために使用されるキーはにあります。
C:\Users\<user>\.Android\debug.keystore
同じキーを使用しても、インストール時に競合が発生しないはずです。
署名付きと署名なしのAPKファイルには違いがあります。たぶん、あなたは以前そこに署名していなかった。署名付きバージョンをインストールする前に、署名なしを削除するだけです。これを実現する方法はバージョンによって異なりますが、一般的にはエミュレータで設定 - >アプリケーションを選択し、アプリケーションをロングクリックして、削除/削除/アンインストールします。
Androidで複数のユーザーを使用している場合は、アプリが至る所でアンインストールされていることを確認してください。
私がデバッグに使用したデバイスにdebugとrelease buildの両方がインストールされないという問題がありました。新しいバージョンをインストールしようとしたときにも同じメッセージが表示されます。唯一の回避策は、現在のバージョンをアンインストールして新しいバージョンをインストールすることでした。
Android Studioがインストールするapkをマークしているため、パッケージマネージャを使用したインストールでは、デバッグ用にインストールされたバージョンとGoogle Playまたはその他の外部ソースからダウンロードされたバージョンを区別できます。
上記の解決策がうまくいかなかった場合は、次のようにしてください。
1)Appstoreからアプリをインストールする。
2)同じパッケージ名で更新されたバージョンのsign APKで更新します。
だから基本的にAPKなら2種類あります。
1)あなたはオリジナルのAPKとして知られているplaystoreにアップロードしました。
2)派生APKとして知られているプレイストアからのダウンロード。
この場合、基本的には派生APKをダウンロードして元のAPKで更新しています。
Google Playストアの内部テストモードで新しく署名されたリリース済みAPKを正常にアップロードし、派生APKをダウンロードして更新シナリオを確認します。
上記のすべてを試してみましたが、うまくいきませんでした。
アプリをアンインストールしても、アプリの新しいバージョンで同じエラーが発生することがわかりました。
これはそれを解決したものです:[設定]-> [全般]-> [アプリケーションマネージャー]->アプリを選択->上部の3つのドットをクリック->すべてのユーザーに対してアンインストール
これを実行すると、実際にはアンインストールされ、新しいバージョンをインストールできるようになります。
お役に立てれば。
同じパッケージエラー:
AndroidManifiestでshareIdを変更/追加/削除してもアプリケーションが更新されない場合があります。
"Android:sharedUserId"
それも確認してください。
これを防ぐためには、現在または現在必要な要件にかかわらず、アプリケーションでsharedUserIdを使用することをお勧めします。
アプリケーションが正常にアンインストールされていない可能性があります。あなたのデバイスがこのような場合、あなたはこの方法を試すことができます。
最初にアプリケーションのパッケージ名、たとえば 'com.xxx.app'を取得します。ルートエクスプローラを使用してマニフェストファイルから見つけることができます(REはファイルをデコードできます)。それからあなたはそれをアンインストールするためにこのスクリプトを使用することができます:
adb Shell pm uninstall com.xxx.app // replace to package name that you want to remove