我发现了很多关于此事的问题 - 我自己也很惭愧。
但无论我怎么努力,我都很简单根本没有运行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尝试了地图演示,使用我自己的应用程序包。不行。 加:那个愚蠢的空窗。这究竟是怎么回事......: - (
答案 0 :(得分:6)
假设
片段:
<!-- 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密钥/权限后,必须再次完全取消部署并重新部署应用。
你在运行什么设备?
答案 1 :(得分:2)
我也有同样的问题,知道我知道导致问题的原因(虽然不是解决方案 - 但是 - )
尝试运行除HTC One之外的其他手机应用。因为我的HTC One存在问题,但是当我在S3上运行它时,它运行得很好。
请尝试告诉我
修改强>
我解决了。但不确定究竟是什么解决方案,但在这里我做了以下步骤: 1-我在手机设置中显示开发者选项使用4.2 OS中的7次点击 2-允许的模拟位置 3-在“选择调试应用程序”中选择我的应用程序 4-卸载了我的应用程序 5-重新安装它 6-运行它并等待30秒然后地图显示
希望这有帮助
答案 2 :(得分:2)
我遇到了同样的问题,然后我发现我犯了一个简单的错误,请确认您是否在google api控制台的服务类别中打开了“Google Maps Android API v2”。我打开了错误的一个它从来没有为我工作,但现在它工作, 希望这可以帮助。 https://code.google.com/apis/console
答案 3 :(得分:2)
即使我几天都面临同样的问题。我只是从设置中卸载了应用程序,重新安装它并且神奇地工作了。
答案 4 :(得分:1)
我遇到了同样的问题。在第20次检查ddewaele答案的步骤后,在Google的API控制台中打开Maps V2安卓,我重新启动了手机,等待了大约15秒的数据下载,所有的工作都像魅力。卸载应用程序不足以使其正常工作。只需在边缘使用开发人员保留其他地图的信息。
答案 5 :(得分: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" />
答案 6 :(得分:0)
我知道这是一个旧线程但几个月前编辑过,我遇到了同样的问题。由于我的问题版本的原因有点不同,我会在这里添加它。我已经检查过所有先前引用的条件,但它仍然给出了相同的错误。
经过几个小时的随机尝试后,我终于发现Android Studio的xml字符串翻译管理器创建了一个新的字符串,其中包含与google api密钥相同的标识符(默认情况下存储在不同的xml文件中)其他字符串)。这个新的字符串资源确实是空的,并且与真正的密钥相混淆。删除它以解决问题就足够了。