【发布时间】: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 并且此密钥的设置不受限制:
我还应该做什么?
【问题讨论】:
-
查看应用启动时的日志输出,看看是否有任何与地图相关的错误消息
-
首先,请从这个线程下载这个演示 zip。 docs.microsoft.com/en-us/samples/xamarin/xamarin-forms-samples/…别改其他地方,参考本帖一步一步获取API_KEY docs.microsoft.com/en-us/xamarin/android/platform/…注意:请在google控制台开启Maps SDK for Android。
-
@Jason 我查看了日志并提取了我认为相关的部分。我不确定如何解决这个问题,因为从我的角度来看,这两个建议解决方案都已经过检查。
-
@LeonLu-MSFT 我按照你的建议做了,得到了同样的结果。日志显示与上面问题中显示的相同的错误
-
@mans 请像我的截图imgur.com/a/uUMRvSm一样在谷歌控制台中设置Android应用程序的应用程序限制,请按照此线程逐步进行,不要更改其他设置:docs.microsoft.com/en-us/xamarin/android/platform/…
标签: android google-maps xamarin