从Google Play商店

时间:2017-06-09 17:19:02

标签: android google-maps release keystore

当我从谷歌播放下载我的应用程序时,谷歌地图没有加载。 当我直接下载带有.apk文件的应用程序(将其传输到我的手机并下载)时,它确实加载了! 我搜遍了它仍然无法正常工作。 这就是我所做的:

  1. 在Android工作室中,Build->生成Sign APK我创建了一个新的Keystore'keystore'和一个新的Key'app''
  2. 运行:keytool -list -v -keystore keystore.jks -alias app。
  3. 在步骤2的输出中,在“证书指纹:”下,我获取了“SHA1”值和我的包名“com.gilshelef.feedme”(来自AndroidManifest.xml文件),并在Google中生成了一个新的API密钥api控制台。我将密钥限制为'android apps'并添加了我的SHA1和包名。
  4. 我将生成的密钥(步骤3)放在我的清单文件中:

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

  5. 在android studio中,Build-&gt;生成符号APK我使用了我在步骤1中创建的相同密钥库和相同的密钥。

  6. 我将生成的apk上传到Google Play。

  7. 从谷歌播放下载我的应用后,地图仍然是空白的!

    注意:

    1. 我还尝试将密钥库的扩展名从.jks更改为.keystore,因为android studio使用.jks扩展名。
    2. 我确认谷歌api控制台上的密钥和我在AndroidManifest.xml文件中使用的密钥是相同的。
    3. 我在google api console和Manifest文件中验证了包名称。
    4. 我遵循了这个:this教程'显示发布证书指纹'。除了'签名算法名称:SHA1withRSA'之外,输出看起来相同。我的发布密钥库中的签名算法名称是'SHA256withRSA',这可能是问题吗?
    5. 我做错了什么?

1 个答案:

答案 0 :(得分:0)

由于google_maps_key,它在发布模式下与调试模式下的版本不同。 当您为应用程序签名时,会发布版本,然后您可以执行以下操作:

  1. 查找发布SHA-1指纹(here
  2. 从google
  3. 获取google maps api的另一个api_key
  4. 将新的api_key放入src / release / values / google_maps_api.xml(在项目视图中)或(Android视图中的app / res / values / google_maps_api.xml(发布))
  5. 希望它可以帮助你...