Xamarin Forms: карта Google не отображается даже после подписания заявки на android - PullRequest
0 голосов
/ 09 марта 2020

Я изменяю пример приложения Xamarin, которое показывает, как использовать Карты (WorkingWithMaps)

Я создал APIKey, используя следующие шаги: https://developers.google.com/maps/documentation/embed/get-api-key

и добавил его в AndroidManifest. xml следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.workingwithmaps" android:installLocation="preferExternal">
    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
    <application android:label="WorkingWithMaps.Android">
        <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="I ADD MY KEY HERE" />
        <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
        <!-- Necessary for apps that target Android 9.0 or higher -->
        <uses-library android:name="org.apache.http.legacy" android:required="false" />
    </application>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
</manifest>

затем, как объяснено здесь, я создал сертификат Keystore и использовал его для подписи моего приложения для отладки:

https://forums.xamarin.com/discussion/23650/is-there-problem-google-map-services

https://forums.xamarin.com/discussion/29053/google-map-doesnt-show-anything

и теперь приложение csprj имеет следующие записи:

 <AndroidSigningKeyStore>C:\Users\Mansour\AppData\Local\Xamarin\Mono for Android\Keystore\samplekey\samplekey.keystore</AndroidSigningKeyStore>
<AndroidSigningStorePass>pass1</AndroidSigningStorePass>
<AndroidSigningKeyAlias>samplekey</AndroidSigningKeyAlias>
<AndroidSigningKeyPass>pass1</AndroidSigningKeyPass>

Но, тем не менее, карта не show.

Что мне делать?

Я где-то читал, что приложение должно иметь разрешение INTE RNET, но, поскольку это пример приложения, которое предоставляется как часть XAMARIN, я подумал он настроен на получение разрешения INTE RNET. Я не прав?

Редактировать 1

Журналы, когда я запускаю приложение на планшете Lenovo Yoga, которое, я думаю, связано с этой ошибкой:

03-10 10:04:21.712 E/Google Maps Android API(26347): Authorization failure.  Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map.
03-10 10:04:21.718 E/Google Maps Android API(26347): In the Google Developer Console (https://console.developers.google.com)
03-10 10:04:21.718 E/Google Maps Android API(26347): Ensure that the "Google Maps Android API v2" is enabled.
03-10 10:04:21.718 E/Google Maps Android API(26347): Ensure that the following Android Key exists:
03-10 10:04:21.718 E/Google Maps Android API(26347):    API Key: ****SyBUI3fDPsFZBLMA5JjxGm--VDygTspSv6c
03-10 10:04:21.718 E/Google Maps Android API(26347):    Android Application (<cert_fingerprint>;<package_name>): 37:F3:F0:27:92:FD:20:93:90:A6:DA:4E:4A:20:3D:A0:5B:22:57:D3;com.companyname.workingwithmaps

Я проверил Облако, google.com и настройки для этого ключа не ограничены:

enter image description here

Что еще мне делать?

1 Ответ

0 голосов
/ 12 марта 2020

Прежде всего, пожалуйста, скачайте демоверсию из этой ветки.

https://docs.microsoft.com/en-us/samples/xamarin/xamarin-forms-samples/workingwithmaps/

Затем пошагово обратитесь к этой теме, чтобы получить API_KEY

https://docs.microsoft.com/en-us/xamarin/android/platform/maps-and-location/maps/obtaining-a-google-maps-api-key?tabs=windows#obtaining -ваш- signature-key-fingerprint

Примечание. Включите SDK Карт для Android в консоли Google. enter image description here

И выберите Android apps в Ограничениях приложения, не устанавливайте none.

Если вы установите Android apps, вам нужно установить значение SHA-1 и ваше имя пакета android, как в следующей теме.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...