0

MonoDroid プロジェクトを開発していますが、この問題を解決できないようです。MapsAndLocationDemo_v2プロジェクトを使用しようとしていますが、マップを SimpleMapDemo プロジェクトにロードすることさえできません。この問題に関する多くの SO 投稿を確認しました。

マップは読み込まれますが、白で、アプリケーションの出力は次のように表示されます。

[Google Maps Android API] Failed to contact Google servers. Another attempt will be made when connectivity is established.
[Google Maps Android API] Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).

プロジェクトREADME.mdの指示に従って、Google Play クライアント サービス ライブラリを構築しました。

次の場所にある debug.keystore を使用して、新しい Android Google マップ v2 API キーを生成しました。

C:\Users\[USERNAME]\AppData\Local\Xamarin\Mono for Android\debug.keystore

プロジェクト manifest.xml 内のものを次のように置き換えます。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="5" android:versionName="4.0" package="com.xamarin.docs.android.mapsandlocationdemo2">
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="17" />
<!-- Google Maps for Android v2 requires OpenGL ES v2 -->
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
<!-- We need to be able to download map tiles and access Google Play Services-->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Allow the application to access Google web-based services. -->
<uses-permission ndroid:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!-- Google Maps for Android v2 will cache map tiles on external storage -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Google Maps for Android v2 needs this permission so that it may check the connection state as it must download data -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- These are optional, but recommended. They will allow Maps to use the My Location provider. -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- Notice here that we have the package name of our application as a prefix on the permissions. -->
<uses-permission android:name="com.xamarin.docs.android.mapsandlocationdemo2.permission.MAPS_RECEIVE" />
<permission android:name="com.xamarin.docs.android.mapsandlocationdemo2.permission.MAPS_RECEIVE" android:protectionLevel="signature" />
<application android:label="@string/app_name">
    <!-- Put your Google Maps V2 API Key here. This key will not work for you.-->
    <!-- See https://developers.google.com/maps/documentation/android/start#obtaining_an_api_key -->
    <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="xxxxxxxxxxxxxMY_KEY_HERExxxxxxxxxxxxxxx" />
</application>
</manifest>

ここに画像の説明を入力

私の Android デバイスは 4.0.3 を実行しています。Google Play Services がデバイスにインストールされ、最新の状態になっています。

どんな提案でも大歓迎です...

4

2 に答える 2

2

API キーを取得するために使用したのと同じキーを使用して、実際にアプリケーションに署名したことを確認してください。

また、アプリケーション パッケージが API キー リクエストと同じであること。

アプリケーションの署名に問題があることが判明するまで、この問題で数時間を無駄にしました。

手動で署名すると、マップが表示されます。

于 2013-08-29T10:40:52.060 に答える
0

アプリが有効なキーで署名されているかどうかを確認する方法を確認してください。そうしないと、Google マップが正しく機能せず、認証が拒否されるなどの問題が発生します。

おそらくこの問題の理由を出力する logcat も確認してください。

于 2014-01-18T18:27:22.950 に答える