Android:谷歌地图v2没有显示发布地图apk

sam*_*395 18 api android google-maps sha1 keystore

我的谷歌地图应用程序在设备上使用调试谷歌地图API KEY工作正常,但当我为我的应用程序创建签名的apk与发布谷歌地图API KEY,它不显示地图.要生成发布模式google API KEY,我在我的密钥库中使用SHA1指纹.我还在我的项目设置中定义了"签名和构建类型",如developer.android.com(http://developer.android.com/tools/publishing/app-signing.html)所述.

尝试了所有可能的解决方案(删除apk,然后再重新安装,重新启动设备,清理项目).没有用.任何人都有一个很好的解决方案,我的问题请帮忙.仅供参考使用Android工作室平台.

Ars*_*war 24

也许你有两个google_maps_api.xml文件,一个在app/src/debug/res/values文件夹中,另一个在app/src/release/res/values文件夹中,但只有一个包含你的API密钥.


Flo*_*rou 15

API密钥需要硬编码到Android Manifest中,如果它位于单独的资源XML文件中,它就不起作用.

  • 也许我的英语不好是问题.我有同样的问题,我通过将API密钥从单独的资源XML文件移动到Android Manifest来解决它.我不知道它为什么在调试上工作而不是使用已签名的APK,但由于我所做的唯一更改是移动API密钥,因此它是我的解决方案. (4认同)
  • 这并没有真正回答这个问题.如果您有其他问题,可以通过单击[提问](http://stackoverflow.com/questions/ask)来询问.一旦你有足够的[声誉],你也可以[添加赏金](http://stackoverflow.com/help/privileges/set-bounties)来吸引更多关注这个问题(http://stackoverflow.com/help/什么声誉). (2认同)

Mar*_*ski 6

调试证书与您的生产证书不同.您需要添加两个在您的API控制台seaparate行您的谷歌地图按键输入-每一样包标识,但自然不同SHA1哈希.

编辑

对单个Google Maps密钥分配的证书指纹和包名称的数量没有限制,因此除非您需要将其分开,否则使用相同的密钥进行开发和生产构建完全没问题.在Google控制台中,它就像这样(一个sha1来自调试证书,对于使用此IDE构建的所有应用程序都是相同的,其他是生产证书):

83:10:58:52:EF:3B:59:70:2B:28:9E:AE:4F:5E:1D:F0:7E:19:FB:F1;com.foo.bar
AE:4F:5E:1D:F0:7E:19:FB:83:10:58:52:EF:3B:59:70:2B:28:9E:AA;com.foo.bar
Run Code Online (Sandbox Code Playgroud)

甚至(但我不建议对不同的应用使用相同的密钥):

83:10:58:52:EF:3B:59:70:2B:28:9E:AE:4F:5E:1D:F0:7E:19:FB:F1;com.foobar.myapp
AE:4F:5E:1D:F0:7E:19:FB:83:10:58:52:EF:3B:59:70:2B:28:9E:AA;com.foo.bar
EF:3B:59:7E:19:FB:83:10:58:57:AE:4F:5E:1D:F0:2B:28:DE:9E:01;net.something.otherapp
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

22896 次

最近记录:

8 年,6 月 前