Android Studio - Google 地图在真正的 Android 设备上发布 apk 时仍为空白

Posted

技术标签:

【中文标题】Android Studio - Google 地图在真正的 Android 设备上发布 apk 时仍为空白【英文标题】:Android Studio - Google map still blank on real Android device on release apk 【发布时间】:2018-04-23 23:04:38 【问题描述】:

用谷歌搜索它,阅读数百万条关于如何生成谷歌 API 密钥、如何使用它的建议,但没有任何效果!

    已启用谷歌地图 v2 API 使用谷歌地图创建了一项活动(工作室中的默认向导) 在 google 上为调试项目创建密钥,将应用程序的 SHA1;app 包分配给 google 上的项目密钥 API 密钥插入 google_maps_api.xml(androidManifest.xml 自动更新) 在应用运行的 AVD 上构建和运行,地图显示。

然后:

    API 已启用 在 Android Studio 中创建了用于发布的密钥库 (keystore.rel.jks) 生成的指纹(keytool -list -v -keystore C:\Dropbox\AndroidKeyStore\keystore.rel.jks) 在 google 上为新发布项目添加了新指纹(发布 SHA1;应用程序包) - 密钥生成 AIza... API 密钥插入 google_maps_api.xml(AndroidManifest.xml 自动更新) 生成签名的应用程序(使用 keystore.rel.jks)并安装在真实设备上...应用程序正在运行,地图仍为空白,只有缩放按钮和 Google 标签处于打开状态

提前感谢您的任何建议。

兹德内克

【问题讨论】:

设置权限并启用互联网? Release文件夹下应该有一个单独的google_maps_api.xml,切换到Project视图查看。在那里输入密钥。 检查清单中的包名是否与谷歌开发控制台中的包名相同。 检查您的 LOGCAT,可能有一些关于 GOOGLE MAP 的错误日志 @Daniel Nugent - 是的!!!!由于这样一个愚蠢的错误,花了 3 个漫长的晚上 :( 非常感谢!现在它可以工作了。 【参考方案1】:

确保在发布文件夹下的 google_maps_api.xml 中输入您的发布 API 密钥。

首先,使用项目浏览器左上角的下拉菜单切换到项目视图。然后,展开app/src/,您将看到子文件夹debugrelease。在那里,您应该会在 debug/res/valuesrelease/res/values 下看到两个单独的 google_maps_api.xml 文件。

确保发布 API 密钥位于 release/res/values 文件夹下的 google_maps_api.xml 文件中,因为这是用于签名发布 apk 的密钥。

【讨论】:

谢谢丹尼尔,你的第一句话击中了我的头! :) 我没有在我的项目中看到 app\src\debug 或 app\src\release 目录。什么不会让他们出现? @Spectrem 您可能在项目资源管理器的 Android 视图中。在左上角有一个下拉菜单,您可以在其中切换到项目视图(看看 TestingMapProject/app/build.gradle 正下方的屏幕截图)。 @Spectrem 我只是偶然发现了这个并且遇到了同样的问题。您是否手动创建了 debugrelease 文件夹并添加了这些值? 很多人会错过检查这个。非常感谢。这救了我的命!【参考方案2】:

我厌倦了一遍又一遍地尝试,事实证明 PlayStore 有一个叫做 App signing certificate 的东西,在我复制那个 sha1 并将其粘贴到谷歌控制台后,地图就可以工作了安卓地图。

【讨论】:

我不知道为什么你的回答被否决了,但这正是我签署发布后问题的解决方案,无论如何,事实证明谷歌用自己的证书创建了自己的签名,你必须使用那个指纹。 很高兴为您提供帮助,有了这个答案,我无法告诉您为什么不赞成 谢谢@AndresFelipe!在花了整整一个晚上弄清楚为什么 googleplay apk 不起作用但我所有的本地配置都起作用之后 - 这终于解决了。 本文解释How to Sign your android app with signed key? (private_key.pepk):learnfreecoding.com/…。如果您选择“上传从 Android Studio 导出的密钥”,这就是您需要的(private_key.pepk 文件)。 感谢您提供此解决方案!我也厌倦了一遍又一遍地尝试,你的回答是我的解决方案。我编写了一个更详细的分步流程来实施此解决方案,并将其发布在***.com/a/56307654/4242086。谢谢安德烈斯。【参考方案3】:

当您尝试创建地图 api 密钥时,请确保 url 包含正确的包名称。它不应该采取任何这样的子包。

错误的包:com.gpslocation.trackerpro.Activities


正确的包:com.gpslocation.trackerpro

修改后别忘了保存

【讨论】:

【参考方案4】:

转至 https://play.google.com/apps/publish/,然后转至App signing

也许你会看到这个:

如果是这种情况,可能您是开发者而不是帐户所有者。您必须联系帐户所有者并要求他/她完成该过程。按照这篇文章了解如何做到这一点:

https://learnfreecoding.com/how-to-sign-your-android-app-with-signed-key-private_key-pepk/

帐户所有者将进入此屏幕:

让他们选择Upload a key exported from Android Studio。他们必须上传private_key.pepk 文件。这是您从 Android Studio 获取该文件的方式:

转到Build > Generate Signed Bundle / APK...

选择Android App Bundle并点击Next

提供相应的凭据并确保勾选Export encrypted key for enrolling published apps in Google Play App Signing

指定目标文件夹并确保在单击Finish之前选择release

这将生成您需要提供给Upload a key exported from Android Studioprivate_key.pepk 文件。

完成上述操作后,当您转到应用程序的App signing 部分时,您将看到如下内容:

然后您将看到 Google 地图在真正的 Android Studio 物理设备上正常工作,而不仅仅是在 Android Studio Emulator 上。这就是我的解决方案。

【讨论】:

【参考方案5】:

通常您必须执行以下步骤:

1- 在 android studio 中创建新的地图活动

2- 在google_maps_api.xml 打开第 3 行的链接

3- 确认数据并在 Firebase 中获取密钥

4- 复制密钥google_maps_api.xml 调试和发布

5- 在gradle 选项卡中获取发布版 SHA1 -> 签名报告

useful link for get sha1

useful link for sign application in debug mode to get sha1

【讨论】:

【参考方案6】:

确保在 Google 控制台中启用 Maps for Android 应用。

【讨论】:

【参考方案7】:

确保您在 google_maps_api.xml 文件中输入的地图密钥与由 google 控制台生成的 android 密钥相同。

您也可以尝试使用新密钥。

【讨论】:

【参考方案8】:

在这个问题上卡了一天。我尝试了一切,最终在我的清单中找到了以下代码:

<supports-screens
   android:anyDensity="false"
   android:largeScreens="true"
   android:normalScreens="true"
   android:smallScreens="false"
   android:xlargeScreens="true" />

删除这些线后,我的地图正确显示。

【讨论】:

【参考方案9】:

我遇到了同样的问题,在我的情况下,我在谷歌地图 API 密钥中使用的包的指纹不匹配,所以我做了什么:

创建一个新的谷歌地图活动。 转到 google_maps_api.xml。 复制该文件中给出的链接并粘贴到浏览器中(登录到 google 帐户)。 在谷歌上在这里创建一些项目,然后按继续 点击创建 API 密钥

复制密钥并粘贴到 google_maps_api.xml

string name="google_maps_key" templateMergeStrategy="preserve" translatable="false"YOUR KEY HERE

并执行应用程序

不要使用下面的指纹或密钥,创建你的单独它是基于包和应用程序

【讨论】:

【参考方案10】:

请按以下步骤操作:

    转到 Google Play 控制台 -> 设置 -> 应用完整性 -> 应用签名密钥证书 复制 SHA-1 证书指纹 打开谷歌云平台 转到 API 和服务 -> 凭据 点击您的 API 密钥 转到应用程序限制 -> 限制使用您的 Android 应用程序 点击添加项目 使用复制的 SHA-1 证书指纹添加您的包名称 等待大约 10 分钟。并且您的地图将在您发布的应用中可见。

【讨论】:

以上是关于Android Studio - Google 地图在真正的 Android 设备上发布 apk 时仍为空白的主要内容,如果未能解决你的问题,请参考以下文章

Google Android Studio Kotlin

com.google.android.maps 在 Android Studio 中不存在

无法按照 Google“入门”页面中的说明在 Android Studio 中添加地图; Android Studio 报错

Google计划放弃Eclipse而支持Android Studio

在Android Studio配置google protobuf

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具