Карта: GMS работает, HMS не работает; onMapReady не вызывается

У меня есть и 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 или что-то еще, чтобы заставить его работать ??


person Meyben    schedule 04.11.2020    source источник


Ответы (2)


Это известная ошибка, которая будет исправлена ​​9 ноября 2020 г.

В настоящее время можно использовать обходные пути:

  1. Измените SupportMapFragement к MapView.
  2. Откатить версию SDK.
person shirley    schedule 05.11.2020

Убедитесь, что вы реализовали OnMapReadyCallback, также вам необходимо передать Bundle в методе карты onCreate перед вызовом mapFragment!!.getMapAsync(this):

 val mapViewBundle: Bundle? = null
 mapFragment!!.onCreate(mapViewBundle)
 mapFragment!!.getMapAsync(this)
person Ahmed Nezhi    schedule 04.11.2020