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服务,现在它正在运行。
答案 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地图。我认为这就是问题所在。