我的谷歌地图应用程序在设备上使用调试谷歌地图API KEY工作正常,但当我为我的应用程序创建签名的apk与发布谷歌地图API KEY,它不显示地图.要生成发布模式google API KEY,我在我的密钥库中使用SHA1指纹.我还在我的项目设置中定义了"签名和构建类型",如developer.android.com(http://developer.android.com/tools/publishing/app-signing.html)所述.
尝试了所有可能的解决方案(删除apk,然后再重新安装,重新启动设备,清理项目).没有用.任何人都有一个很好的解决方案,我的问题请帮忙.仅供参考使用Android工作室平台.
我最近推出了一款Android应用,可以使用Google商家信息自动填充功能小部件/ API.作为配置的一部分,我将API密钥添加到我的Android清单文件中:
<application>
...
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="MY_KEY_HERE"/>
</application>
Run Code Online (Sandbox Code Playgroud)
此外,在Google Developers控制台中,我仅为Android设备启用了此API密钥,但并未限制任何特定的API.我还为我的应用输入了正确的包名和SHA-1哈希.现在我有以下问题:
我确信我部署到Play商店的实际上是同一个本地运行的应用程序,因为我最近也制作了一些小的UI补丁,这些也出现在商店版本上.我多次验证了清单文件中出现的正确密钥.
我无法解释这一点.这个问题特别困难,因为一切都可以在Android Studio中运行,所以我不能做一些事情,比如进入调试并尝试捕获异常.
如果你有一些Android和自动完成的专业知识,并且你已经看到类似的问题,那么我欢迎你的回答.
今晚我花了很长时间试图弄清楚如何让我的Android Map的调试版本中的Google Map能够在发布版本中运行.出现了一些不同的问题.Stack Overflow帖子的一些片段有所帮助,但我认为列出整个过程的更多细节会很有用,包括我遇到的问题,包括:
1)您如何/在何处为发布版本指定不同的内容?
2)如何运行获取发布版本指纹所需的keytool可执行文件?
3)运行keytool时,为什么我得到"密钥库文件存在但是为空"错误?
我制作了一款使用Google Maps API显示地图的Android应用.
当我用android studio运行它时工作正常.然而,在我将它发布到Play商店并从那里下载后,所有地图都显示为灰色屏幕.
我使用调试SHA-1密钥在google开发控制台上注册了一个密钥,我通过此命令获得了该密钥:
keytool -list -v -keystore"%USERPROFILE%.android\debug.keystore"-alias androiddebugkey -storepass android -keypass android
我用这个命令得到的释放SHA-1键:
keytool -list -v -keystore [my\keystore\path] -alias [releaseAlias] -storepass [storepass] -keypass [keypass]
我也解压缩了我的发行版APK并使用此命令进行了检查:
keytool -printcert -file CERT.RSA
它显示与上面的释放键相同的SHA-1键.
我是否仍然无法正确获取SHA-1密钥?有没有其他方法来获取和验证它?
编辑:我发现了问题.这就像Android SHA1发布密钥库中没有使用谷歌地图的最高回复说.有两个google_maps_api.xml文件,一个在debug中,另一个在release中,android studio只显示调试文件.手动编辑发行版xml以添加密钥修复它.
android ×4
google-maps ×2
sha1 ×2
api ×1
api-key ×1
google-api ×1
keystore ×1
keytool ×1
release ×1