2013年1月16日水曜日

Android アプリがインストールできない?!

アプリケーション開発してテストしている時に、

名前が同じで、署名が合するパッケージが既にインストールされています
と表示され、インストールされなかった。

Androidアプリケーションは署名必須。
PackageManagerは、パッケージ名でアプリケーションを区別し、
同じパッケージ名のアプリケーションが既にインストールされているかどうかみる。
インストール済みの場合は、「署名に使われた証明書」が同じかどうかをチェックする。
違う場合はインストールされない。
これによって、アプリケーションの改竄を防いでいるのだ。

で、上記のエラーメッセージは、署名が違うからだめだ!というエラー。
しかし、初めてインストールしたアプリなのに(Why?)、
開発した別のアプリをインストールしているが、パッケージ名は違うはずだが、、、、。

と、AndroidManifest.xmlをよ~く見たら、
 「package=」で指定したものが一緒だった!!

ソースファイルのパッケージ指定は変えていたのだが、
プロジェクトをコピーして改造したから、AndroidManifest.xmlの「package=」がそのままだったから(^^;;

PackageManagerが見るのは、AndroidManifest.xmlの 「package=」指定だったよね(^^;;


もしGoogle Playからのインストールで、
名前が同じで、署名が合するパッケージが既にインストールされています
と出たら、要注意!
それでもインストールしたかったら、
インストール済みアプリをアンインストールして、再度チャレンジすれば入ります。

0 件のコメント:

コメントを投稿