我在谷歌地图在Android应用程序中进行制作时遇到了重大麻烦。这就是我目前得到的(底部只是广告)。
我遵循的关键步骤:
1)我已确保获得了正确的SHA1生产密钥,并已在Google控制台API和应用内实施(Google提供的密钥)。我已经注册了两个键 - 一个用于调试,一个用于生产
2)互联网,位置等正在运作
3)该应用程序在DEBUG模式下工作,但在通过USB签名并安装在设备上时不起作用。我已经三次检查了标志的SHA 1签名等。
4)MapsFragment来自Android Studio中提供的模板。
在生产模式下,日志cat显示:
01-11 16:04:54.511 19346-19437/com.mike.mapstest E/Google Maps Android API﹕ Authorization failure. Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map.
01-11 16:04:54.516 19346-19437/com.mike.mapstest 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: YOUR_KEY_HERE
Android Application (<cert_fingerprint>;<package_name>): <SHA1 Removed for this> ;com.mike.mapstest
这个错误显然表明我的身份证明有问题? 我做错了什么?
答案 0 :(得分:39)
基于可调试版本构建的logcat输出:
01-11 16:04:54.511 19346-19437/com.mike.mapstest E/Google Maps Android API﹕ Authorization failure. Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map.
01-11 16:04:54.516 19346-19437/com.mike.mapstest 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: YOUR_KEY_HERE
Android Application (<cert_fingerprint>;<package_name>): <SHA1 Removed for this> ;com.mike.mapstest
您似乎没有覆盖清单中的api密钥占位符YOUR_KEY_HERE
(或单独的api密钥文件,具体取决于您的配置)。用你的实际钥匙替换那根绳子,无论它住在哪里,你都应该好好去。
编辑:this tutorial,如果它与您的配置相匹配,可能会解释为什么您只看到发布版本的原因:
返回Android Studio并将API密钥粘贴到文件的YOUR_KEY_HERE部分:
请注意,这些步骤已启用Google Maps支持应用程序包的调试版本。 API密钥还需要添加到位于MapDemo中的google_maps_api.xml文件中 - &gt; app - &gt; src - &gt;发布 - &gt; res - &gt;准备好构建应用程序的发布版本时的值。
答案 1 :(得分:9)
我遇到了同样的问题,并且正在将我的头撞在墙上几天。我阅读了关于正确放置钥匙的所有帖子。我一直在google_maps_api.xml文件中输入正确的密钥。上面提到的StKent确保用AndroidManifest.xml中的实际字符串覆盖。这就是为我解决的问题。
当它没有工作时我拥有的东西: 在AndroidManifest.xml中:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
并在google_maps_api.xml中:
<string name="google_maps_key"
templateMergeStrategy="preserve"
translatable="false">AIza_the actual key</string>
我改变了它的工作方式 我将AndroidManifest.xml更改为包括:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="AIzsa_the actual key" />
答案 2 :(得分:4)
使用Android Studio生成Google Maps Activity时,它会忽略您的gradle构建配置并使用默认的debug.keystore
。 google_maps_api.xml
中的SHA1基于此默认值。在Google API控制台中创建权限时,如果您使用非默认设置,请务必使用您的生产并调试SHA1。
答案 3 :(得分:3)
调试和生产密钥会有所不同。如果您使用调试密钥进行发布模式,则无法查看Google地图。对于发布模式,当您更改谷歌地图密钥时,您应该清理项目然后导出apk。
您可以获得更多信息 https://developers.google.com/maps/documentation/android/start
从调试密钥库中获取私有SHA1
keytool -list -v -keystore~ / .android / debug.keystore -alias androiddebugkey -storepass android -keypass your_app_password
了解更多
SHA-1 fingerprint of keystore certificate
或者您可以使用导出菜单eclipse工具生成私有SHA1密钥
答案 4 :(得分:0)
就我而言,我在Google API的API管理器中输入了错误的软件包名称 - 凭据 - “限制对Android应用的使用”。确保输入正确的软件包名称(如在AndroidManifest.xml中)和正确的SHA指纹(用于调试和生产)。
答案 5 :(得分:0)
解决了,我把显示浏览器应用程序的密钥(带有引用者)&#34;而不是Android应用程序的键#(带证书)&#34;来自Google API控制台
答案 6 :(得分:0)
在我的情况下,灰屏是由HostnameVerifier
的自定义实现引起的,该实现阻止了图块的加载。
希望这会在将来对其他人有所帮助。
答案 7 :(得分:-1)
错误//确保已启用“ Google Maps Android API v2”。 在这种情况下,您无法在Google Cloud Platform Console中找到类似Google Maps Android API v2的版本。in this, give the exact Package Name: and signature of your project which is showing in run window or debug window , I faced the same problem because of changing MapActivity package location 我整日都在努力工作,因此请确保您是否在项目中更改了任何软件包,如果这样,请给软件包显示错误文本 强调文字 确保以下Android密钥存在: API密钥:YOUR_KEY_HERE Android应用程序(;):; com.mike.mapstest