我有一个Android应用,几天前突然停止在生产中显示地图图块。而是,地图显示带有Google徽标的灰屏,好像键是无效的。我们最近尚未部署应用程序或更改密钥。
我创建了一个新密钥,并在Android Studio中重建了该应用程序。进行一些调整后,地图可以正确加载到Android 19的MapView
中。
但是,在模拟器和真实设备中,地图在更高版本(例如26、27)中仍为灰色。
如果我改用Maps docs中的示例MapFragment
替换应用程序的MainActivity,则地图会加载并在所有平台上都是交互式的。如果然后我切换回MapView
并重建应用程序,则地图将显示MapFragment
加载的所有图块-但是在平移和缩放时不会加载任何其他内容。没有明显的logcat错误。
我已经升级到最新的播放服务('com.google.android.gms:play-services-base:16.1.0'
,'com.google.android.gms:play-services-location:16.0.0'
),更新了gradle,无效的缓存以及重新启动,擦除和重新安装的模拟器设备-行为一致。
答案 0 :(得分:1)
似乎问题在于生命周期事件处理。来自'MapVew' description:
此类的用户必须转发来自的所有生命周期方法
Activity
或Fragment
包含此视图中的相应视图 这个班。特别是,您必须转发以下方法:onCreate(Bundle) onStart() onResume() onPause() onStop() onDestroy() onSaveInstanceState() onLowMemory()
必须使用
getMapAsync(OnMapReadyCallback)
获取GoogleMap。MapView
自动初始化地图系统和视图。
您必须在mMapView.onCreate(bundle)
布局的mMapView.onStart()
或Activity
的每个相应方法中调用Fragment
,MapView
等。
答案 1 :(得分:0)
在此特定情况下,问题似乎是由Google Maps服务与({ __typename: "Project" } & {
project: number;
})
库的交互引起的。将两者都更新到最新版本即可解决此问题。