グーグル開発者ドキュメントに記載されているとおりの手順を正確に適用してサンプルグーグルマッププロジェクトを作成し、すべてがエミュレーターで正常に動作しましたが、プロジェクトapkファイルを生成して実際のデバイスで起動すると、Samsung Galaxy S4グーグルマップが表示されません画面の左下隅に、色付きのGoogleロゴが表示された空白の背景のみが表示されます!!
Googleマップの新しいプロジェクトを作成しました。プロジェクトの新しい.jksファイルを作成し、ストアとキーパスとエイリアスを作成してから、cmd Java binからdev.google.comに移動したSHA1を抽出しました/ consoleが新しいプロジェクトを作成し、Googleマップを有効にしましたAndroid APIが作成された資格情報からAPIキーを作成しましたこのAPIキーをプロジェクトのgoogle_maps_api.xmlに貼り付けて、プロジェクトの.jksファイルパスでsigningConfigsリリースを更新しました。エイリアスと2つのパスワード。Android Studioから署名済みAPKを生成し、次にapp-release.apkを実際のデバイスに転送してから、同じ問題のgoogleマップが表示されないようにインストールしました。
この問題の理由
これは、debug
とrelease
タイプに異なるSHA1
sがあるために発生しました。
この問題の修正
release
APK
の構築に使用したキーストアのSHA1
をGoogleコンソールに追加します
ステップ:
署名済みAPKを生成するときにキーストアのパスを取得する
ビルド---->署名済みAPKを生成..
キーストアパスを保存します
ビルドタイプを作成することを忘れないでください--- release
SHA1
を抽出します。以下のターミナル使用コマンドを開きます。
keytool -list -v -keystore "/Users/NT/Desktop/generalkey.jks"
キーストアのパスワードを要求されます。
パスをキーストアパスに変更しますkeytool -list -v -keystore "keystore path"
証明書のフィンガープリントから、SHA1
が表示されます
SHA1
とパッケージ名を使用してAndroidキーを生成しますキーストアを使用してAPKを生成し、マップを楽しむ
ばかげているかもしれませんが、APIキーが含まれています
app\src\debug\res\values\google_maps_api.xml (debug)
また、に含める必要があります
app\src\release\res\values\google_maps_api.xml (release)
まだこの問題に直面している人がいる場合:
これは私に起こりました。デバッグ用とanotherリリース用の2つのGoogleマップAPIキーが必要なため、次のようにチェックインできます。
C:\ Users\username\AndroidStudioProjects\yourapp\app\src\debug\res\valuesとすると、次のようなapiキーを持つxmlが見つかります。
<string name="google_maps_key" templateMergeStrategy="preserve"
translatable="false">AIza...etc</string>
ここをチェックすると:
C:\ Users\username\AndroidStudioProjects\yourapp\app\src\release\res\values xmlが見つかりますが、次のようにapiキーがありません。
<string name="google_maps_key" templateMergeStrategy="preserve"
translatable="false">YOUR_KEY_HERE</string>
xmlファイル自体にコメントとして記載されていました。
アプリケーションをリリースする前に、Google Maps APIキーが必要です。
To do this, you can either add your release key credentials to your existing
key, or create a new key.
Note that this file specifies the API key for the release build target.
If you have previously set up a key for the debug target with the debug signing certificate,
you will also need to set up a key for your release certificate.
Follow the directions here:
https://developers.google.com/maps/documentation/Android/signup
Once you have your key (it starts with "AIza"), replace the "google_maps_key"
string in this file.
ストアで公開する前にGoogleで署名されたapkなので、google pushishアプリ---> app signningに移動し、署名済みのキーをgoogle開発者コンソールに追加します。3つのキーsha1を追加する必要があります。
次のことを確認してください。
この下のファイルは、デバッグとリリースの両方にある必要があります
app\src\debug\res\values\google_maps_api.xml (debug)
あなたも含める必要があります
app\src\release\res\values\google_maps_api.xml (release)
SHA1 for release apkをGoogle Apiコンソールに追加します。
SHA1キーはplay console >> App Signing >> SHA1 Certificateから取得できます
Android apkのリリースバージョンでマップを表示するには、開発者は、アプリケーションの公開後にGoogle Play Consoleによって作成された、更新されたSHA-1キーを追加する必要があります。コンソールの[アプリの署名]セクションに移動し、 「アプリ署名証明書:SHA-1証明書のフィンガープリント」を探します。フィンガープリントをコピーして、開発者がマップ用のGoogle APIキーを作成したGoogle APIコンソールに貼り付けます。
私がapkを作成しているときにもマップの同じ問題がありました。Googleマップキーを作成したシステムと同じシステムでapkを作成すると、マップが機能し、完全に表示されます。
上記のすべてのケースが機能しない場合は、以下の方法を使用してください。 このためのGoogle Play署名有効化