xamarin谷歌地图不工作

时间:2014-10-15 11:07:12

标签: android xamarin xamarin.android android-maps-v2

我使用以下链接http://developer.xamarin.com/guides/android/platform_features/maps_and_location/maps/part_2_-_maps_api/创建了一个地图,我按照其中提到的所有步骤进行了操作,但得到的是一个空白屏幕。我的应用程序输出显示以下登录执行地图活动。

打开连接[请求] DRD(41):62 | 147 [请求]关闭[请求]错误处理:com.google.maps.api.android.lib6.bd@42a1cef8未重试[请求]重试:com。 google.maps.api.android.lib6.c.au@429ced70

任何人都可以告诉我为什么会这样。

3 个答案:

答案 0 :(得分:3)

正如@Miha所提到的,这是与键相关的。

目前,您不会在地图上显示任何地图图块。

要使示例正常工作,您需要做几件事。

1)获取您机器的签名密钥指纹 SHA1 )。

如果您尚未为自己的计算机创建 SHA1 键,则需要先执行此操作。链接here描述了如何使用命令控制台生成它。

因此,您将获得 SHA1 密钥指纹。

2)从您正在处理的项目中获取包名称

可以通过查看 Android Manifest 标签下的 Android 项目属性找到此信息。然后,您将看到包名称字段的文本框。

3)在 Google Developer Console 中,如果您还没有应用,则需要创建应用创建新的Android密钥 (它位于 API& auth \ Credentials 下。)

在弹出的屏幕上,您可以输入之前以 {格式捕获的 SHA1 键和包名称 SHA1}; {包名}

然后,您将返回将在下一步中使用的 API密钥: -

4)在 Android项目中,查看 AndroidManifest.xml 的来源。您将看到以下内容: -

<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="{some api key}" />      

输入您之前捕获的 API密钥

5)在 Google Developer Console 中,对于项目,您还必须记住必须启用 Google Maps Android API v2 以及 Google Play Android Developer API 。您可以在 API&amp; auth \ APIs

最后,您应该能够运行演示。

更新1: -

uses-permission添加MAPS_RECEIVE作为@leoneboaventura也提到,如下所示: -

<uses-permission android:name="{your-package-name}.permission.MAPS_RECEIVE" />

答案 1 :(得分:1)

我刚刚弄清楚我的情况有什么问题。可能由于Java命名规则,您必须使用小写中的第一个字母命名您的包。 Visual Studio按照C#命名规则命名我们的包,这些规则将首字母大写。

因此,请检查此问题是否相同,导致您的地图无法通过执行以下操作打开:

1)确保您的包裹名称以小写字母开头。

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="mypackage.android" android:versionCode="1" android:versionName="1.0">

确保您的包名为 mypackage.android 而非 MyPackage.android

2)确保以下两个权限中的包名称与清单包名称拼写匹配:

<uses-permission android:name="mypackage.android.permission.MAPS_RECEIVE" />
<permission android:name="mypackage.android.permission.MAPS_RECEIVE" android:protectionLevel="signature" />

3)检查是否已为同一包名生成APIKey: {您的SHA1证书指纹}: mypackage.android

答案 2 :(得分:0)

如果在部署Release apk后无法查看地图,请遵循此视频。 https://www.youtube.com/watch?v=xLJ0jDFdUZ0

它说:

  1. 从Visual Stuido创建密钥库。
  

a。将项目配置模式放入发布。

     

b。清理并构建您的Android项目。

     

c。右键单击您的Android项目,然后选择存档(在此之前,在清单或属性中指定版本代码和版本名称)。

     d。存档完成后,单击“分发”。

     

e。选择AdHoc频道。

     

f。使用别名,密码和其他信息创建一个新的签名身份。

     

g此签名密钥在location中创建一个KeyStore文件:    C:\ Users \ [用户名] \ AppData \ Local \ Xamarin \ Mono for Android \ Keystore \ [Alias] \ [Alias] .keystore   注意:[别名]是您在创建KeyStore文件时定义的名称

  1. 打开您的cmd。光盘到C:\ Program Files \ Java \ jdk1.8.0_131 \ bin
  2. 执行: keytool -list -v -keystore“ C:\ Users \ [用户名] \ AppData \ Local \ Xamarin \ Mono for Android \ Keystore \ [Alias] \ [Alias] .keystore” -alias [别名]
  3. 您将获得带有MD5,SHA1,SHA256的输出...复制 SHA1 键。

  4. 转到 https://console.developers.google.com 。选择您为Android API密钥创建的项目。

  5. 单击凭据,然后选择您的API密钥。
  6. 添加新的程序包名称和指纹以及项目的程序包名称和复制的SHA1键。 注意:在Android Project的清单和属性上定义的Project包名称。

  7. 等待大约5分钟,以使更改生效。之后,您可以再次存档并获取新的APK。在您的android设备上安装并查看。现在,您将可以看到地图。

注意::我指的是Xamarin,Visual Studio 2017