我在API控制台中生成了2个API密钥,一个用于使用调试SHA1(无限制)进行调试,另一个用于使用发布密钥库SHA1(使用Android应用程序限制)生成。
我在调试.. \ google_maps_api.xml和发布.. \ 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 Signature)和V2(Full APK Signature)生成签名的APK。在Playstore中发布后,地图未加载。有人可以指导我吗?。
答案 0 :(得分:0)
基于此thread,当您导出应用程序以发布它时,您可能不再使用调试密钥库,而是自定义调试密钥库。切换到另一个密钥库时,您必须生成新的Google Maps API密钥。您需要创建发布证书指纹。您可以检查here生成发布证书指纹的步骤。这是另一个可能有帮助的reference。
答案 1 :(得分:0)
此问题的一个解决方案是如果您正在使用 Google 的应用签名,他们正在为您重新签署您的应用,并且您需要将新的 SHA-1 密钥添加到 API 密钥限制中.这就是为什么它在您签名和安装时有效,而不是在将其上传到 Play 管理中心后有效。
通过选择应用 -> 设置 -> 应用完整性,可以在 https://play.google.com/console 上找到此 SHA-1。
在您将此 SHA-1 指纹添加到您的密钥后,应用将开始运行,无需重新构建。