【问题标题】:Google Maps blank on real Android device - but works on Emulator真正的 Android 设备上的谷歌地图空白 - 但适用于模拟器
【发布时间】:2016-06-04 16:58:24
【问题描述】:

你好,

我正在尝试让地图工作,它似乎在 Nexus 6 模拟器上工作正常,但是当我在 Moto G 或三星 Galaxy 上运行它时,地图完全是银行 - 它只包含谷歌徽标底角。

我已经生成了一个谷歌地图密钥并将其放入我的 google_maps_api.xml 文件中。我必须生成 SHA-1 证书指纹吗? 如果是,我该怎么做?

查看答案:https://stackoverflow.com/a/33691443/5387193 我不太明白说明。

这是我的日志: http://textuploader.com/52xzy

编辑 1: 在 AndroidManifest.xml 中添加了一行

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

它现在可以在我的 Moto G 上运行,但不能在我的三星上运行。我想是因为我没有接受敏感信息权限(ACCESS_FINE_LOCATION)。

我正在开发的这个应用不需要知道用户的 GPS 位置,所以我真的不需要这些敏感信息 - 有没有简单的方法可以删除这个功能和权限?

我认为是权限导致了问题。

编辑 2: 我有代码:

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

在我的 AndroidManifest.xml 中,@string/google_maps_key 是我生成的正确密钥。我已经生成了一个 SHA1 指纹来获取密钥,我需要将指纹放在我的代码中的某个地方吗?

我没有生成发布密钥,我认为它只是一个调试密钥。您认为这可能是问题所在吗?

我将设置 google play 服务,看看它会如何影响它。

编辑#3: 在三星上卸载并重新安装了 Google Play 服务,现在它可以工作了。

【问题讨论】:

  • 您是否有机会将这些日志重新格式化为代码,以便它实际上可以通过换行符读取?

标签: android google-maps android-emulator


【解决方案1】:

您的 logcat 中的这一行似乎是问题所在:

02-23 10:02:01.591 5760-5760/com.companyperth.companytools E/GMPM: GoogleService failed to initialize, status: 10, Missing an expected resource: 'R.string.google_app_id' for initializing Google services.  Possible causes are missing google-services.json or com.google.gms.google-services gradle plugin.

Google Play 服务似乎设置不正确。您需要获取google-services.json 并将其放入您的项目中。要正确设置 Google Play 服务,请参阅Google APIs for Android

如果您使用的是 Android 版 Google 地图,则需要生成 SHA1 指纹才能获取 Android 密钥。见Get API key - Google Maps for Android。但是,如果您使用的是 Google Maps Javascript API(集成到 Android),则不需要生成 SHA1 指纹,因为您将使用服务器密钥。

【讨论】:

    【解决方案2】:

    尝试更新您的谷歌地图。我认为这就是问题所在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 2023-01-15
      相关资源
      最近更新 更多