3

我发现了很多关于这个的问题——我几乎羞于自己问这个问题。

但无论我怎么努力,我根本没有让 Maps API 运行

与演示项目 com.example.mapdemo 无关,与我自己的项目无关。

我肯定已经注册了我的 debug.keystore SHA1 指纹,现在适用于我的应用程序和 com.example - 我还尝试了浏览器 API 密钥,每个人都说这也可以工作。

但不是。

我总是得到:

06-16 11:21:29.860: E/Google Maps Android API(2382): Authorization failure.  Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map.

我对此感到非常非常生气。怎么可能不完整和彻底地描述这个问题,以便那些能够编写 Android 应用程序的人能够跟随并取得成功?

如何?

谁能告诉我还有什么问题?

附加组件:我完全按照规范设置了所有内容,从我的 debug.keystore 中获取了我的密钥,使用 com.example 尝试了地图演示,并为我的应用程序使用了我自己的包。不工作。另外:那个愚蠢的空窗。这到底是怎么回事... :-(

4

7 回答 7

6

假设

  • 您正在可以访问 Google Play 服务的设备上尝试此操作
  • 您已将您的项目与 Google Play 服务库相关联
  • 您已经设置了必要的权限,如下所示:

清单中的片段:

<!-- Specify the correct minSDK and targetSDK versions. -->
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

<!-- Google Maps related permissions -->
<permission
    android:name="com.ecs.google.maps.v2.actionbarsherlock.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE" />

<!-- Network connectivity permissions -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

<!-- Access Google based webservices -->
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

<!-- External storage for caching. -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<!-- My Location -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<!-- Maps API needs OpenGL ES 2.0. -->
<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />
  • 您已经像这样设置了地图键:

在此处输入图像描述

  • 您已将元数据标签放在应用程序标签内

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="AIzaSyA_u1faIXRhx_Q7NafFbrhQJEerl6UUbPY" />
    
  • 您确保使用正确的密钥库(对应于 API 控制台中定义的密钥库)构建 APK。

  • 在检查/更新这些步骤后,您完全删除并重新部署了您的应用程序,您应该一切顺利。

根据我的经验,我能够按照Google Maps Android API v2 Getting started上的说明进行操作,但我确实记得在使用 API 密钥/权限后必须完全取消部署并重新部署应用程序。

你在什么设备上运行?

于 2013-06-16T09:54:59.823 回答
2

我遇到了同样的问题,然后我发现我犯了一个简单的错误,请验证您是否在 google api 控制台的服务类别中打开了“Google Maps Android API v2”。我打开了错误的一个它从来没有为我工作过,但现在它工作了,希望这会有所帮助。 https://code.google.com/apis/console

于 2013-07-17T04:48:17.803 回答
2

甚至我几天都面临同样的问题。我只是从设置中卸载了该应用程序,重新安装它并神奇地工作了。

于 2013-10-18T08:38:09.620 回答
2

我也有同样的问题,并且知道我有点知道导致问题的原因(虽然不是解决方案-但是-)

尝试在您的 HTC One 以外的其他手机上运行您的应用程序。因为我的 HTC One 有问题,但是当我在 S3 上运行它时,它运行良好。

请尝试让我知道

编辑

我解决了。但不确定确切的解决方案是什么,但在这里我做了什么步骤:1-我在手机设置中显示开发人员选项使用 4.2 操作系统中的 7 次点击 2-允许的模拟位置 3-在“选择调试”中选择我的应用程序应用程序” 4- 卸载我的应用程序 5- 重新安装它 6- 运行它并等待 30 秒然后地图显示

希望这可以帮助

于 2013-07-15T17:28:08.627 回答
1

我有同样的问题。在检查了 ddewaele 回答的第 20 次步骤后,在 Google 的 API 控制台中打开 Maps V2 android 后,我重新启动了手机,等待了大约 15 秒的数据下载,一切都像魅力一样。卸载应用程序不足以使其正常工作。只需在边缘使用开发人员为其他地图留下信息。

于 2013-08-25T19:21:06.597 回答
0

我知道这是一个旧线程,但它是几个月前编辑的,我遇到了同样的问题。由于我的问题版本的原因有点不同,我将在此处添加它。我检查了所有先前引用的条件是否为真,但它仍然给出相同的错误。

经过几个小时的随机尝试后,我终于发现 Android Studio 的 xml 字符串翻译管理器创建了一个新字符串,该字符串具有与 google api 密钥相同的标识符(默认情况下存储在与其他字符串不同的 xml 文件中) . 这个新的字符串资源确实是空的,并且与真正的键相冲突。删除它足以解决问题。

于 2017-01-29T12:15:37.247 回答
0

我有同样的问题,我花了两个星期才得到解决方案,最后我得到了它。只需从 res/values/google_maps_api.c 中删除密钥并用新密钥替换它,按照以下步骤操作,您将获得一个新密钥。

1> Find SHA1 by Using that command in command prompt:

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

2> Get Package name from android manifest and use finger print of SHA1 for create an new api key 


3> copy created key and past it in res/values/google_maps_api.xml and also past in android manifest 

<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">Paste Here New Api</string>
</resources>

<meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="Paste Key Here" />
于 2016-08-29T19:11:37.070 回答