質問: ### 前提・実現したいこと Android StudioでGoogle Mapを使ったアプリを作成しています。 現在地を表示させるプロジェクトを下記サイトから入手し試行しました。 https://github.com/googlemaps/android-samples インポートしたプロジェクト /android-samples-master/tutorials/java/CurrentPlaceDetailsOnMap ### 発生している問題・エラーメッセージ コードを実行しても地図が表示されません。 ``` E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.currentplacedetailsonmap, PID: 18377 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.currentplacedetailsonmap/com.example.currentplacedetailsonmap.MapsActivityCurrentPlace}: java.lang.IllegalArgumentException: API Key must not be empty. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3430) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3614) <中略> Caused by: java.lang.IllegalArgumentException: API Key must not be empty. at com.google.android.libraries.places.internal.zzft.zza(com.google.android.libraries.places:places@@2.3.0:5) at com.google.android.libraries.places.api.Places.zza(com.google.android.libraries.places:places@@2.3.0:14) at com.google.android.libraries.places.api.Places.initialize(com.google.android.libraries.places:places@@2.3.0:2) at com.example.currentplacedetailsonmap.MapsActivityCurrentPlace.onCreate(MapsActivityCurrentPlace.java:118) <以下略> ``` ### 該当のソースコード MapsActivityCurrentPlace.java ``` Places.initialize(getApplicationContext(), getString(R.string.maps_api_key)); ``` ### 試したこと gradle.propertiesにGoogleから入手したAPIキーを以下のように記述しました。 GOOGLE_MAPS_API_KEY=入手したAPIキー またエラーメッセージに"API Key must not be empty."とありましたので、AndroidManifest.xmlの以下の箇所にもAPIキーを入力しましたが、エラー内容は変わりませんでした。 @string/maps_api_keyのところにAPIキーを入力 ### 補足情報(FW/ツールのバージョンなど) macOS Mojave 10.14.6 Android Studio 4.0 ### 最後に 初心者なりに調べましたが、ここで手詰まりになりました。 なにかアドバイスをいただければ幸いです。
回答: 説明書のGetting startedに記されている通り、APIキーを記述するのはgradle.propertiesではなく**secure.properties**というファイルです。プロジェクトのルート(CurrentPlaceDetailsOnMapの直下ではなく、android-samplesの直下)にsecure.properties.templateというファイルが存在するはずです。これと同じ場所にsecure.propertiesを作り、 MAPS_API_KEY=YOUR_API_KEY の書式でAPIキーを1行で記述してビルドすれば、私の手元では正常に動作しました。