谷歌地图在真实的Android设备上空白 - 但适用于模拟器

时间:2016-02-23 02:25:21

标签: android google-maps android-emulator

HOLA,

我正在尝试让地图工作,它似乎可以正常使用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指纹来获取密钥,我是否需要将指纹放在我的代码中?

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

我会设置谷歌播放服务,看看它会如何影响它。

编辑#3: 在三星上卸载并重新安装了Google Play服务,现在它正在运行。

2 个答案:

答案 0 :(得分: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指纹,因为您将使用服务器密钥。

答案 1 :(得分:0)

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