アプリケーション開発してテストしている時に、
「名前が同じで、署名が競合するパッケージが既にインストールされています」
と表示され、インストールされなかった。
Androidアプリケーションは署名必須。
PackageManagerは、パッケージ名でアプリケーションを区別し、
同じパッケージ名のアプリケーションが既にインストールされているかどうかみる。
インストール済みの場合は、「署名に使われた証明書」が同じかどうかをチェックする。
違う場合はインストールされない。
これによって、アプリケーションの改竄を防いでいるのだ。
で、上記のエラーメッセージは、署名が違うからだめだ!というエラー。
しかし、初めてインストールしたアプリなのに(Why?)、
開発した別のアプリをインストールしているが、パッケージ名は違うはずだが、、、、。
と、AndroidManifest.xmlをよ~く見たら、
「package=」で指定したものが一緒だった!!
ソースファイルのパッケージ指定は変えていたのだが、
プロジェクトをコピーして改造したから、AndroidManifest.xmlの「package=」がそのままだったから(^^;;
PackageManagerが見るのは、AndroidManifest.xmlの 「package=」指定だったよね(^^;;
もしGoogle Playからのインストールで、
「名前が同じで、署名が競合するパッケージが既にインストールされています」
と出たら、要注意!
それでもインストールしたかったら、
インストール済みアプリをアンインストールして、再度チャレンジすれば入ります。
0 件のコメント:
コメントを投稿