安卓谷歌地图空白

Posted

技术标签:

【中文标题】安卓谷歌地图空白【英文标题】:Android google map blank 【发布时间】:2018-01-14 23:11:49 【问题描述】:

1) 创建新项目。

2) 已创建选定的谷歌地图。

3) 调试 google_maps_api.xml 步骤。

https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=:::::::::::::::::::%3Bcom.agtapp.srilanka

已创建谷歌开发者控制台 API 密钥。

<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false"> AIzaSyDRuMUTElAoXoK2y2rXSqtpvdQSZ12z_dk </string>

4) 发布 google_maps_api.xml 的步骤如下。

developers.google.com/maps/documentation/android/signup 步骤。

keytool -list -keystore your_keystore_name

keytool -list -v -keystore your_keystore_name -alias your_alias_name

SHA1: :0D::74:D3::E1:43::71::62:90: :A1:66:6E:__:5D:75 添加

已创建谷歌开发者控制台 API 密钥。

<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false"> AIzaSyB3d_usre_Joj_TrgP3aKtdkrSt_tTeqGI </string>

添加了不同的释放键。

5) AndroidManifest.xml

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

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

6) Generate signed APK created, Build Type release version created.

7) 在 Play 商店发布的测试版。

8) 谷歌地图屏幕空白。

9) 但是本地运行的应用程序谷歌地图工作正常。

10) 谷歌开发者控制台上正确添加了所有包名。

【问题讨论】:

嗯,我唯一想到的是你可能会错过google-services.json 这对你来说意味着什么吗?啊抱歉,我没有看到您提到发布-您的密钥库与发布不同吗?您需要该构建类型/密钥库的 SHA1/APIkey 例如,debug 通常使用位于~/..android/debug.keystore 的 AndroidDebugKey,但您可能有一个专门为发布设置的密钥库,它不使用调试密钥,因此为该密钥库获取一个 SHA1 ,或者直接运行 Gradle Tasks> android> signingReport 看看! 你应该在 Logcat 中看到一些东西。你也可以分享一下Logcat吗? 你试过this方式释放api密钥吗?如果不只是尝试。 它是 Play Store 应用程序.. 没有显示关于谷歌地图的 logcat.. 【参考方案1】:

我假设这可能是由于 SHA 1 指纹不匹配。仔细检查您是否使用相同的密钥库来获取 SHA1 和 apk 版本。

或 让我们检查您的 API 密钥是否有效。 为此添加以下 MAP_API 作为您的发布密钥

AIzaSyDztCvpv3PVBxzWwY7mWqCMnGfDeOiGxwY

在您的 AndroidManifest.xml 中添加以下权限(可选/非必需)

 <permission
    android:name="your_pakage_name.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

构建您的发行版 apk。并进行测试。

如果地图正在显示,那么我们可以修复您的 API 密钥是问题所在。

所以再获取一次 Sha1 并在您的谷歌开发者控制台中更新。

【讨论】:

【参考方案2】:

您正在 cmd 中生成 SHA-1。有时 cmd 返回本地 SHA-1 而不是管理员。所以尝试从 Android 工作室创建 SHA-1。 按照步骤生成 SHA-1:

    点击GradlePreview 选项显示的工作室右侧面板) 点击Project name 点击Task 点击android 然后点击signingReport

您的 SHA-1 生成复制此 SHA-1 并粘贴到谷歌控制台。

【讨论】:

这些调试 SHA-1 的步骤,我也检查了这些步骤。 我认为您正在为仅调试应用程序创建密钥。尝试在 google consol 上创建发布【参考方案3】:

我认为您仍然在发布版本中使用您的 SHA1 进行 debug.keystore。尝试在您的发布密钥库中获取您的 SHA1。

Windows 终端

keytool -list -v -keystore "PATH OF YOUR RELEASE KEYSTORE" -alias ALIAS -storepass StorePassword -keypass KeyPassword

OSX 终端

keytool -list -v -keystore PATH OF YOUR RELEASE KEYSTORE -alias ALIAS -STORE PASS android -keypass KEYPASS

获取您的 SHA1 并在您的 Google API 控制台上注册。

希望对您有所帮助。 .

【讨论】:

【参考方案4】:

问题是我的包名....我在文件夹中创建 MapActivity...所以 android studio 自动将我的包名设置为 com.example.myappname.myfoldename 而不仅仅是 com.example.myappname在 google_api.xml 中也是谷歌控制台的结果。

我强烈建议您尝试此解决方案...生成一个新的 api 密钥并检查您的包名称。

【讨论】:

以上是关于安卓谷歌地图空白的主要内容,如果未能解决你的问题,请参考以下文章

谷歌地图突然停止工作(空白地图)

如何显示谷歌地球旧世界地图(或空白/物理世界地图)的谷歌地图平铺覆盖?

谷歌地图只显示空白瓷砖android

谷歌地图在发布apk中显示空白屏幕,在调试模式下工作正常

为啥手机上不能用谷歌地图

谷歌地图使用 google_maps_flutter 插件显示空白地图