地图:GMS 有效,HMS 无效; onMapReady 未调用
Map: GMS works, HMS dont; onMapReady not called
我在一个 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 或其他东西更多的权限才能使其工作?
确保你实现了 OnMapReadyCallback 并且你需要在调用之前在 onCreate 地图方法中传递 Bundle mapFragment!!.getMapAsync(this)
:
val mapViewBundle: Bundle? = null
mapFragment!!.onCreate(mapViewBundle)
mapFragment!!.getMapAsync(this)
该问题为已知bug,将于2020年11月9日修复。
目前,可以使用变通方法:
- 改变SupportMapFragement to MapView.
- 回退SDK版本。
我在一个 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 或其他东西更多的权限才能使其工作?
确保你实现了 OnMapReadyCallback 并且你需要在调用之前在 onCreate 地图方法中传递 Bundle mapFragment!!.getMapAsync(this)
:
val mapViewBundle: Bundle? = null
mapFragment!!.onCreate(mapViewBundle)
mapFragment!!.getMapAsync(this)
该问题为已知bug,将于2020年11月9日修复。
目前,可以使用变通方法:
- 改变SupportMapFragement to MapView.
- 回退SDK版本。