おはようございます。
今日は最近作ったAndroidのGoogleマップを使ったアプリで遭遇した不具合を記事にします。
AndroidアプリをGoogle Playでリリースしたが。。。
Google Mapを使ったアプリを開発して、リリースしたのですが、Google Playストアからアプリをインストールして確認してみたら、Googleマップが表示されない。。。
デバッグしていた時は表示されたのになんで!?って思ってAndroid Studio起動して、実機に接続してみたら、こんなログが出てました。
06-10 08:52:43.236 4258-4476/? E/Google Maps Android API: Authorization failure. Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map.
06-10 08:52:43.238 4258-4476/? E/Google Maps Android API: In the Google Developer Console (https://console.developers.google.com) Ensure that the “Google Maps Android API v2” is enabled.
Ensure that the following Android Key exists:
API Key: AIzaSyCdXyZOUIIpooydi-j3_Jb7ni6ek6LVAME
Android Application (<cert_fingerprint>;<package_name>): (フィンガープリント);(アプリのパッケージ名)
要は、GoogleマップのAPI認証でエラーが出ている模様。
調べた結果、こんな記事を見つけました。
http://imnuybtvrcexw.blogspot.jp/2015/06/googlemapauthorization-failure.html
確認してみたところ、google_maps_api.xmlファイルにコピペしたはずのapi keyがManifestに反映されていませんでした。今一度ご確認を他にも海外版のstack over flow には原因と思わしきところが幾つか挙げられていました
- google consoleのapiをオンにしているか?
- sdkマネージャーのgoogle play serviceをインストールする
- (自分はインストールしていない状態で出来ましたが…)
- 最小SDKが8
- 一度エミュ/実機からアンインストール→クリーン で解決できたそうな話もありました
僕の場合、AndroidManifestにapi keyを直書きしているから問題ない。。。
でも結局、api key関連が怪しいっぽい。
Google マップが表示されない問題、解決!
で、さらに調査を続けた結果、解決できました。参考にさせて頂いたのは以下の記事です。
https://akira-watson.com/android/google-map.html
この記事で書かれている、リリース用のフィンガープリントとパッケージ名は登録済みだったのに、僕の場合はダメでした。
その原因は、フィンガープリントにありました。
Googleの公式サイトでは、ターミナルで自分のキーストアのフィンガープリントを出力して、sha1をコピーして使うって書いてあったので、その通りにフィンガープリントをコピーしてつかったのですが、
僕の場合、Android Studio で出力されたエラーに書かれているフィンガープリントをGoogle APIコンソールに登録することで解決しました。
リリース署名してapk作成した時はマップが表示されていたのに、Google Playに出したらマップが出なくなるという謎。。
そして、ターミナルで出力したキーストアのフィンガープリントと、Android Studioからログ出力した時に出てくるフィンガープリントが違う謎。。。
現状の方法としては、Androidアプリを一旦アップロードしてから、ダウンロードしてきて、Android Studioでログに出力されたフィンガープリントをGoogle APIコンソールに登録するしかなさげ。。。
毎回こんなことしなきゃいけないの!?って思いました。(多分違うw)
絶対もっといい方法がありそう。。
すみません。まだAndroid慣れてないんです。。
もし、もっとちゃんとした解決策がわかったら共有しますね。。
コメントを残す