问题描述
我在一个Android项目中同时拥有GMS和HMS。 GMS版本有效,但是HMS不会调用onMapReady回调。这是代码:
private var mMap: HuaweiMap? = null
private var mapFragment: SupportMapFragment? = null
private fun setMapFragment() {
mapFragment = supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment?
mapFragment!!.getMapAsync(this)
mapFragment!!.view!!.isClickable = false
}
override fun onMapReady(huaweiMap: HuaweiMap) {
mMap = huaweiMap
loadMap()
}
我认为GMS和HMS的实施方式相同,但我想我错了。 HMS是否需要比GMS更高的权限或使其正常工作?
解决方法
此问题是一个已知的错误,它将在2020年11月9日纠正。
当前,可以使用解决方法:
- 将SupportMapFragement更改为MapView。
- 回滚SDK版本。
确保实现了OnMapReadyCallback,并且还需要在调用mapFragment!!.getMapAsync(this)
之前在onCreate地图方法中传递Bundle:
val mapViewBundle: Bundle? = null
mapFragment!!.onCreate(mapViewBundle)
mapFragment!!.getMapAsync(this)