【问题标题】:Xamarin Forms: Google map doesn't show even after signing the application on androidXamarin Forms:即使在 Android 上签署应用程序后,Google 地图也不会显示
【发布时间】:2020-03-09 17:58:39
【问题描述】:

我正在更改显示如何使用地图 (WorkingWithMaps) 的示例 Xamarin 应用程序

我使用以下步骤创建了一个 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>

但是,地图仍然没有显示。

我该怎么办?

我在某处读到该应用程序应具有 INTERNET 权限,但由于这是作为 XAMARIN 的一部分提供的示例应用程序,我认为它已设置为具有 INTERNET 权限。我错了吗?

编辑 1

在我认为与此错误有关的联想瑜伽平板电脑上运行应用程序时的日志:

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

我检查了 cloud,google.com 并且此密钥的设置不受限制:

我还应该做什么?

【问题讨论】:

标签: android google-maps xamarin


【解决方案1】:

首先,请从这个线程下载这个演示 zip。

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-your-signing-key-fingerprint

注意:在 google 控制台中启用 Maps SDK for Android。

并且在应用限制中选择Android apps,不要设置none

如果您设置Android apps,则需要设置SHA-1 value 和您的android 包名称,如以下线程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多