web-dev-qa-db-ja.com

Googleマップが署名済みのAPKに表示されない

これはよくある質問であり、通常、解決策はリリース用に別のキーを生成することです。開発者コンソールのAPIキーには、AndroidStudioからのデバッグ用と自分のキーストアからのリリース用の2つの異なるSHA1フィンガープリントが含まれています。同じキーストアでアプリに署名し、コンソールでGoogle Maps Android API v2を有効にしました。それでも、マップアクティビティは左下隅に「Google」と白い画面のみを表示します。

問題を解決する方法はありますか?

27
mityakoval

デバッグgoogle_maps_api.xmlにAPIキーのみを入力しているようです。また、デバッグとリリースに同じAPIキーを使用しているように聞こえますが、リリースフォルダーとデバッグフォルダーにあるgoogle_maps_api.xmlに入力する必要があります。

プロジェクトがAndroidビューにある場合、デバッグファイルのみが表示されます(ただし、そのビューでは、括弧内に(debug)が必要ですが)].

リリースバージョンを変更するには、プロジェクトエクスプローラーの左上にあるドロップダウンを使用してプロジェクトビューに切り替えます。次に、app/src/を展開すると、サブフォルダーdebugおよびreleaseが表示されます。その下のdebug/res/valuesrelease/res/valuesの下に2つの個別のgoogle_maps_api.xmlファイルが表示されます。

APIキーがrelease/res/valuesフォルダーの下のgoogle_maps_api.xmlファイルに入力されていることを確認します。これは、署名されたリリースapkに使用されるためです。

enter image description here

65
Daniel Nugent

Google Playアプリの署名を選択した場合、アプリのSHA-1はリリース時に異なるものになります。

Googleはアップロードされた証明書を削除してから、新しい証明書でアプリに署名するため、

したがって、新しいSHA-1キーを知っている必要があります。

(リリースのログをたどって新しいSHA-1を追跡する必要はありません)

enter image description here


2つのSHA-1キーを比較できます。

元の回答

20
wajih

私はこれらを修正するために多くのことをしましたが、これらの問題を修正するために私の解決策はありません

  1. 新しいキーストアファイルを使用して署名付きapkを作成し、リリースモードで作成することを確認します
  2. 署名済みapkを作成した後、キーストアファイルを保存するキーストアパスをメモする必要があります。
  3. また、リリースモードとデバッグモードの両方でGoogleマップAPIキーを使用する必要があります。両方で同じAPIキーを使用できますが、Googleコンソールで1つのAPIキーに2つの異なるSHAキーを追加する必要があります。
  4. キーストアツールはbinフォルダー内にあるため、CドライブからJavaのbinフォルダーのパスを使用する必要があります。ファイルはC:\ Program Files\Java\jdk1.8.0_11 \のようになりますbinを使用して、Android studioターミナルへのパスをたどり、パスをC:\ Program Files\Java\jdk1.8.0_11\binに変更してから、次のコマンドを入力する必要があります。

    keytool -list -v -keystore "/Users/NT/Desktop/generalkey.jks"(adress of your keystore file)
    
  5. これらを実行することで、shaキーがそのキーをコピーします

  6. Google console/credentialsに移動します
  7. Apiに移動すると、編集オプションが表示され、shaキーを編集して保存します。
  8. コードを実行します。
0
bharat udasi

sha1のバージョンを使用しています。 apkに署名した後、コマンドプロンプトを使用してSHA1を再度生成する必要があります。

SHA1を再生成する手順は、cmdに移動して、次のようなコマンドを指定することです。

C:\Program Files\Java\jre1.8.0_91\bin>keytool -list -v -keystore 

「C:\ Your key store path\keystores\Android.jks」

1)あなたのJavaプログラムファイルで開くJava jre1.8.0のようなバージョン

2)binフォルダーを開き、cmdでこのコマンドを実行した後に署名付きapkを生成したときに生成したキーストアパスに従って上記のようなコマンドを実行すると、署名済みアプリのパスワードを入力する必要があり、SHA1が消去されます。

3)sha1をコピーし、apiキーにパッケージ名を付けてconsole.developerに貼り付けます。

0