34

承認の失敗。マップを正しく設定する方法については、 https://developers.google.com/maps/documentation/android/startを参照してください。

以下が API コンソールの内容に対応していることを確認してください: パッケージ名: com.company.app、API キー: AIzaSyC***OsTeo、証明書フィンガープリント: 4E5285***6BF53ED3 Google サーバーに接続できませんでした。接続が確立されると、別の試行が行われます。

地図の読み込みに失敗しました。Google サーバーへの接続中にエラーが発生しました。これはおそらく認証の問題です (ただし、ネットワーク エラーが原因である可能性があります)。


私は、この主題について十分な数の質問があることを知っています. しかし、マップビューを機能させることができないようです。その結果、空のマップ ビュー (ズーム ボタン付き) が表示されます。

私がやったこと:
- google-play-services をダウンロード/インストール-に
追加- code.google.com/apis/console で 有効化 - 正しい権限を設定google-play-services.jarlibs/
Google Maps API v2

これは私のマニフェストがどのように見えるかです:

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<permission
    android:name="com.company.app.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<uses-permission android:name="com.company.app.permission.MAPS_RECEIVE" />

<application ...>
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="AIzaSyC***OsTeo" />
</application>

Google API コンソールの API アクセスは次のようになります。

Key for Android apps (with certificates)
API key:        AIzaSyC***OsTeo
Android apps:   4E:52:85:***6B:F5:3E:D3;com.company.app
Activated on:   Jun 18, 2013 11:07 PM
Activated by:   my@email.com – you

そして、いくつかのコード(これが認証エラーになる理由がわかりません):

FragmentManager fragmentManager = super.getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
SupportMapFragment fragment = new SupportMapFragment();
fragmentTransaction.replace(R.id.mapContainer, fragment);
fragmentTransaction.commit();

ご覧のとおり、パッケージ名、API キー、および証明書のフィンガープリントが Google サーバーに対応していないというエラーが表示されます。しかし、私が上で書いているように、それらの値は一致します...

4

10 に答える 10

84

Google Maps Android API v2でサービスを有効にしGoogle API's consoleます。また、変更を行った後、デバイス/エミュレーターでアプリを完全に再インストールします。

于 2013-06-19T07:09:15.767 に答える
15

簡単な場合、これを助けてください:Android Studioから作業する場合、Google APIキーをファイルgoogle_maps_api.xmlに記述しますが、Android Studioはプロジェクトマネージャーの(デバッグ)バージョンのキーファイルのみを表示します. 鍵を入れる必要があります

\app\src\release\res\values\google_maps_api.xml

ファイルも(キーを配置するように

\app\src\debug\res\values\google_maps_api.xml

)

于 2015-05-27T22:27:07.680 に答える
5

パッケージ名が google developer console/credentials/package name に正しく入力されていることを確認してください。アプリケーションのトップパッケージ名である必要があります。com.company.appname は com.company.appname.ui.activity.maps ではありません。https://developers.google.com/maps/documentation/android/startの指示に従いましたが、ネストされたパッケージでアクティビティを作成しました。Google Web ページにネストされたパッケージ名が入力され、このエラーが発生しました。

于 2016-01-09T06:57:18.087 に答える
5

私は同じ問題を抱えていましたが、正しいAPIを有効にしていました。問題は、SHA1 を取得するときに間違ったキーストア ファイルを使用したことでした。リリース キーストアを使用しましたが、代わりに以下を使用する必要がありました。

keytool -list -v -keystore debug.keystore

このファイル (mac osX の場所):

~/.android/debug.keystore

これにより、Google コンソールに入力した別の sha1 が得られ、現在は機能しています。

于 2014-04-23T06:08:15.283 に答える
4

次のことを確認してください。

https://code.google.com/apis/console/?noredirect
Click on Services(Left side panel) -> Enable Google Maps Android API v2

SHA1 キーを取得するには、次のコマンドを使用できます。このコマンドはキーストアを生成します。

keytool -genkey -v -keystore GoogleMapV2.keystore -alias GoogleMapV2 -keyalg RSA -    keysize 2048 -validity 10000

このコマンドは、SHA1 キーとその他の情報を提供します

keytool -list -v -keystore ~/path/to/GoogleMapV2.keystore -alias GoogleMapV2 -storepass any-password -keypass any-password i.e :

68:1C:74:24:7B:1F:9C:71:76:DD:69:4F:F2:8F

<application> </application>:タグ内のキー

<meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="YOUR KEY" />
<meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

<application> </application>上部のタグの外側の許可

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <!--
     The following two permissions are not required to use
     Google Maps Android API v2, but are recommended.
    -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

注: Eclipse またはエミュレーターを使用してアプリを実行しないでください。Eclipse を使用しないで apk を作成して実際のデバイスで実行すると、正しくないデバッグ キーが取得されます。

VkJ

于 2014-04-19T13:37:38.473 に答える
1

解決策を探した後、Google マップのサポート チームに問い合わせをしたところ、次のような回答がありました。

  1. リリース キーを生成します。詳細な方法については、Google Cloud Consoleをご覧ください。
  2. アプリを Google Play にアップロードします (署名済み APK ファイル)。
  3. アプリが送信されたら、Google Play Console からアプリを選択します。
  4. 開発ツール -> リリース管理 -> アプリ署名に移動します。
  5. アプリのアップロード後に Google Play が発行した SHA-1 証明書をコピーします。
  6. Google コンソールに移動し、プロジェクトを選択します。
  7. API キーを選択し、キーを制限して、パッケージ名の後に SHA-1 を貼り付けます。
  8. [保存] を押します。
于 2020-05-22T07:13:52.833 に答える