我收到此错误:
E/Google Maps Android API: Authorization failure. Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map.
E/Google Maps Android API: In the Google Developer Console (https://console.developers.google.com)
Ensure that the "Google Maps Android API v2" is enabled.
Ensure that the following Android Key exists:
API Key: [The key...]
Android Application (<cert_fingerprint>;<package_name>):
这不是我的地图正常工作,而是这样:
在我的app/build.gradle
中,我有这个:
implementation 'com.google.android.gms:play-services-base:16.1.0'
implementation 'com.google.android.gms:play-services-analytics:16.0.8'
implementation 'com.google.android.gms:play-services-awareness:16.0.0'
implementation 'com.google.android.gms:play-services-cast:16.2.0'
implementation 'com.google.android.gms:play-services-gcm:16.1.0'
implementation 'com.google.android.gms:play-services-location:16.0.0'
play-services-location
是我需要的Google地图,对吗?我正在查看https://developers.google.com/android/guides/setup上的列表,并假设Google Location and Activity Recognition - com.google.android.gms:play-services-location:16.0.0
是Google Maps所需要的。这是正确的吗?
更新1:我已经启用了Android版Maps SDK:
错误提示:Ensure that the "Google Maps Android API v2" is enabled.
。是指我在 UPDATE 1 的屏幕快照中显示的Maps SDK for Android
吗?
更新2:我已启用Maps SDK for Android
:
当我单击MANAGE
按钮时,可以转到此部分以配置在 UPDATE 1 中显示的凭据。
更新3:我在模拟器上看到所有版本的Android上正确显示的地图。但是在物理设备上,地图永远不会显示。在实体手机上运行该应用程序时,我看到了Google徽标和红色气球,但现在看到了地图。只有在仿真器上,一切正常。有什么想法吗?
更新4:在https://stackoverflow.com/a/56307654/4242086上查看我的解决方案。
答案 0 :(得分:3)
嘿,我今天遇到了同样的问题!,我非常容易地解决了问题,首先您必须去https://console.developers.google.com并启用android SDK映射,然后创建api密钥,然后在xamarin中返回您的清单并添加谷歌地图api键
这是文档 (我输入的速度很快,因为现在在移动设备上很抱歉)
答案 1 :(得分:1)
按照下面的链接生成Google api密钥:- https://developers.google.com/maps/documentation/android-sdk/map-with-marker
Android代码参考链接:-
答案 2 :(得分:0)
我遵循了本教程,并且能够对其进行修复:https://www.youtube.com/watch?v=sJBlQv6IptQ。该视频引用了本教程:http://ramsandroid4all.blogspot.com/2016/01/google-maps-android-example-in-android.html。
就我而言,我所做的是在https://console.developers.google.com/创建一个新项目。我将Android apps
用于Application restrictions
:
对于Restrict usage to your Android apps
部分,我必须提供一个Package name
和一个SHA-1 certificate fingerprint
。 Package name
在我的app/build.gradle
中,具体在这里:
applicationId "[my package name]"
我通过运行SHA-1 certificate fingerprint
在Android Studio中找到了signingReport
:
结果包括以下内容:
Alias: AndroidDebugKey
MD5: [The value]
SHA1: [The value]
SHA-256: [The value]
Valid until: Wednesday, May 5, 2049
----------
BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed
16:31:44: Task execution finished 'signingReport'.
现在,地图可以在我的Android应用中正常工作了
更新1:令我惊讶的是,这些地图只能在Android Studio仿真器上正常工作,而不能在真正的Android物理设备上正常工作。解决方案就是我在https://stackoverflow.com/a/56307654/4242086上发布的。
答案 3 :(得分:0)
将项目移至新计算机时,我得到的症状完全相同。我的解决方案是根据错误消息生成一个新密钥。 google_maps_api.xml文件在注释中有一个URL以生成密钥,但这是静态的,因此在将项目移至新计算机后,我重新编写了URL以匹配错误消息的版本。
生成了密钥,并将其放入XML文件中,并且效果很好。
答案 4 :(得分:0)
对于那些还没有弄清楚的人,请再次查看错误消息下方的日志记录。请密切注意在日志记录中打印出的 certifcate_fingerprint 和 package_name 。仔细比较这些内容与Google开发控制台中指定的内容。
在将近整整一年的不活动之后,我再次选择了一个旧的业余爱好项目。我可能在某处进行了更改,从而触发了证书指纹的更改,反之亦然。
希望这会有所帮助!
答案 5 :(得分:0)
时间改变了配置步骤。这是新的。
设置您的项目 https://console.cloud.google.com/projectselector2/home/dashboard
启用 Google 地图 API。转到 https://console.cloud.google.com/apis/library?filter=category:maps&_ga=2.192684329.2027491681.1618180744-3962552.1609436892 选择您要启用的 API
转到您项目的 API 凭据 https://console.cloud.google.com/project/_/apiui/credential
在凭据页面上,单击创建凭据 > API 密钥。 API 密钥创建对话框显示您新创建的 API 密钥
点击关闭。
在 Android Studio 中,打开您的应用级 build.gradle 文件并将以下代码添加到 plugins 元素。 id 'com.google.secrets_gradle_plugin' version '0.5'
保存文件并将您的项目与 Gradle 同步
打开 values\google_maps_api.xml
并将 YOUR_API_KEY
替换为第 4 点中的 API。
检查您的 AndroidManifest.xml,MAPS_API_KEY
已替换为您的实际密钥
android:name="com.google.android.geo.API_KEY"
android:value="${MAPS_API_KEY}" />
<uses-permission android:name="android.permission.INTERNET" />
答案 6 :(得分:0)
就我而言,我做的一切都是正确的。但仍然出现错误,结果是更改清单文件中的属性“android:name”解决了问题。
改变
android:name="com.google.android.maps.API_KEY"
到
android:name="com.google.android.maps.v2.API_KEY"