2018年度からgooglemapをアプリで使う際はgoogleCnosoleDeveloperでgoogleMapApi
ライブラリを有効にしないとgooglemapが正常に起動できなくなりました。
自分が今作っているアプリも例外でなく、表示する際に灰色のスクリーン
がでてきてしまいます。登録だけならいけるだろと思っていたのですが
これがまためんどくさい仕様でかなり沼ったので書き置きしていきます。
ちなみにここでは、googleアカウントを作成してある前提で
説明していきますのでご容赦ください。
まず、googlemapを正しく使うには、登録の際にはパッケージ名とフィンガプリント
(証明書)の二点が必要になります。パッケージ名はactivityの一番上にあるので
分かりやすいですね。一方でフィンガプリントはどうやって見るかというと、
まずcmdに移動して
keytool -list -keystore “%USERPROFILE%\.android\debug.keystore”
と打ち込みます。入力後キーストアのパスワードを入力してください
と出ますがここは何も入力せずにEnterを押してください。
ずららっと色々な署名系の暗号が出てきます。
その中でsha1:から始まるローマ字と数字が合わさった
文字列がこれからgoogleCnosoleDeveloperで使うフィンガープリントに
なるので間違えないようコピーをしておいてください。
これでフィンガプリントの確保はできたので、実際にgoogleCnosoleDeveloperでgooglemap
を使えるようにしていきたいと思います。
まず、ログイン後ダッシュボードに移動したら画面上にあるAPIの有効化をクリックします。
移動後にMapsSDKForAndroidをクリックします。その後管理ボタンをクリック。
この時点でAPIKeyを取得できます。
その後apiとサービスの認証情報で新しい認証情報を作成し、外部からの悪用を
避けるためのapiキーの制限を設定します。
設定ページに移動したら、パッケージとフィンガプリントを入れるフォームがあるので
そちらに自分のパッケージとフィンガプリントを入れていきます。完了後に保存します。
適用されるまで少し時間がかかりますが(最長で5分)これが終わればgoogleApiが有効に
なっているので少しづつマニフェストに書いていきます。
上記の設定を全て終わらせたら、androidManifestに必要事項を書いていきます。
まず、applicationタグ内にmeta-dataタグを設定していきます。
(自分はここでハマりました。なのでこちらは後で説明します。)
</pre> <pre><meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzaSyBc5xjIzF1vpeS2Kt1_vAXFRQGdeebZNLQ"/></pre> <pre>
上記のmeta-dataには、先ほど取得したapiキーを入れていきます。
その後下記のようにgoogle-play-serviceのパーミッションを設けます。
</pre> <pre><meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data</pre> <pre>
最後に、googolemapのパーミッションを書いて終了です。
こちらの作業後にビルドしてマップが出れば成功です。が、自分の場合はマップが
グレースクリーンで返されました。一通りパーミッション等を見ても設定漏れも
パッと見ない・・・。よくわからず。
仕方がないのでandroidStudioで吐かれたエラーを見てみることに。
すると、googleCnosoleDeveloperに登録したパッケージ名とログで吐かれたパッケージ名
が異なることに気づきました。
activityの一番上にあるpackage com.なんとかかんとか;って書いてあるのが
パッケージじゃないんかい!!と突っ込みつつandroidStudioログ側のパッケージ
をgoogleCnosoleDeveloper内の新しいアイテムにて登録。
これで、晴れてマップを表示させることができました。
以上でgooglemapの使用法とエラー対処法は終わりです。
似たような悩みがある方はまずandroidStudioで吐き出されるパッケージ名と
フィンガプリントを確認してみてください。以上です。
androidStudioで吐かれたログがこちら↓
</pre> <a href="https://cpoint-lab.co.jp/wp-content/uploads/2019/09/googlemaperror.jpg"><img class="alignnone size-medium wp-image-11563" src="https://cpoint-lab.co.jp/wp-content/uploads/2019/09/googlemaperror-300x33.jpg" alt="" width="300" height="33" /></a> <pre>