Google Play API中的“Google Play服务正在更新”

问题描述:

我有一个使用Google地图的Android应用程序。突然之间,它停止在释放模式下工作。地图视图告诉谷歌播放服务正在模拟器和真实设备上更新。在网上搜索大家都在谈论API密钥文件,但这不是我的问题!Google Play API中的“Google Play服务正在更新”

我已经试过的发布设置,每一个可能的不同组合,并我发现,当我在构建配置设置debuggable = false(与debuggable = true它的工作原理)出现问题。我不明白为什么地图不工作,因为当然,APK不可调试。我也尝试了多种版本的Google Play服务,甚至是最新的(10.2.0)。没有不同。

我该怎么办?请帮助,因为我无法在Play商店发布任何新版本,直到我修复此错误。

enter image description here

+0

是否启用Google Maps Android API的api密钥? –

+0

当然@ShaSmith –

+0

@GuidoLodetti你使用的是proguard吗? –

“如果我设置可调试为false它停止工作”

这表明你的API访问仅限于调试模式。考虑到没有用于调试和发布的单独的API密钥,它会显示你的密钥已经绑定到你的调试证书。

引述“更多的API密钥限制”的documentation

您可以选择添加的限制。对于Android应用,您限制关键看你的应用程序的SHA-1指纹

如果你有地方这样的限制,释放证书的不同指纹会破坏你的API访问。

看看上面链接,以获得正确的(释放)证书指纹

+0

SHA-1是正确的。如果我将debuggable设置为true,并用生产证书对其进行签名,则一切正常。如果我切换到假,一切都会中断。 –

+0

您使用生产认证的调试模式?那么你使用什么实际生产建设? –

+0

在发布此问题之前,我尝试分析可能会导致问题的原因,因为在调试所有工作时,以及在发布到Google Play时,它不再起作用。结果发现导致错误的唯一因素是“可调试”到“错误”。如果我尝试单独使用生产证书,则不会出现问题。 –

假如同一个问题的文件的“获取自己的证书信息”一节。尝试从gradle更新您的谷歌播放服务,然后检查它。可能会帮助你。还有一件事,请使用最新的gradle版本,并且目标请设置为17以上。

有同样的“错误”,可以通过使用以下步骤来解决:

https://productforums.google.com/forum/#!topic/play/ey7qIRBYj-o

我知道你的感受,当你不断收到一条消息说 “谷歌Play服务已停止” 。要解决此问题,我建议您为Google Play服务(转到设置>应用或 应用管理器> Google Play服务>清除缓存>确定)和 Google Play商店推荐使用 明确缓存。一旦你清除了缓存,重新启动你的设备到 检查它是否工作。

我有同样的问题,我设法修复它。 当minifyEnabled选项设置为true时(如果错误未发生问题),会发生此问题。

总之,我就是这样做是为了添加一行:

-keep class com.google.** {*; } 

到ProGuard的规则文件(proguard-rules.pro),以避免谷歌被混淆播放服务的依赖。 至少在我的情况下,如果添加这个规则,结果APK看起来不会大得多。

我认为当从另一个模块(例如共享库)中使用地图组件时会出现问题,但我没有检查它。