地图:GMS有效,HMS不起作用; onMapReady未调用

问题描述

我在一个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日纠正。

当前,可以使用解决方法:

  1. SupportMapFragement更改为MapView
  2. 回滚SDK版本。
,

确保实现了OnMapReadyCallback,并且还需要在调用mapFragment!!.getMapAsync(this)之前在onCreate地图方法中传递Bundle:

 val mapViewBundle: Bundle? = null
 mapFragment!!.onCreate(mapViewBundle)
 mapFragment!!.getMapAsync(this)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...