0

我在 API 控制台中生成了 2 个 API 密钥,一个用于使用调试 SHA1(无限制)进行调试,一个用于使用发布密钥库 SHA1(有 Android 应用程序限制)进行生产。

我在 debug..\google_maps_api.xml 和 release..\google_maps_api.xml 中分别拥有 API 密钥,并在关闭应用程序标记上方的 Manifest 中添加了元数据。我生成了一个签名的 APK,地图加载正常。我的清单看起来像这样

<application
    <activity
        android:name=".MainActivity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="stateHidden|adjustResize" />

    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

    <activity
        android:name=".MapsActivity"
        android:label="@string/title_activity_maps"
        android:screenOrientation="portrait" />

    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_maps_key" />
</application>

我使用签名服务 V1(Jar 签名)和 V2(完整 APK 签名)生成了签名的 APK。在 Playstore 中发布后,地图未加载。任何人都可以请指导我吗?

4

2 回答 2

0

基于此线程,当您导出应用程序以发布它时,您可能不再使用调试密钥库,而是使用自定义密钥库。当您切换到另一个密钥库时,您必须生成一个新的 Google Maps API 密钥。您需要创建发布证书指纹。您可以在此处查看生成发布证书指纹的步骤。这是另一个可能有帮助的参考。

于 2017-06-13T15:53:03.253 回答
0

此问题的一种解决方案是,如果您使用的是 Google 的 App Signing,他们正在为您退出您的应用程序,并且您需要将新的 SHA-1 密钥添加到 API 密钥限制中。这就是为什么它在您签名并安装它而不是在将其上传到 Play 管理中心后才起作用的原因。

通过选择应用程序 -> 设置 -> 应用程序完整性,可以在https://play.google.com/console上找到此 SHA-1。

将此 SHA-1 指纹添加到您的密钥后,该应用程序将开始工作,无需重新构建。

于 2021-05-26T08:59:46.067 回答