E / AndroidRuntime: FATAL EXCEPTION: main Kotlin нет ошибок в logocat - PullRequest
0 голосов
/ 02 марта 2020

Здравствуйте. У меня ошибка при передаче того же значения из if в else, logcat не дает мне больше информации, просто E / AndroidRuntime: FATAL EXCEPTION: main и указывает строку, содержащую if и else. Может кто-нибудь сказать мне, как это исправить? любая помощь приветствуется.

override fun onMapReady(googleMap: GoogleMap) {
        Log.i("MAP READY", "READY")
      LINE ERROR  val position = if (currentLocation != null) LatLng(currentLocation!!.latitude, currentLocation!!.longitude) else  LatLng(currentLocation!!.latitude, currentLocation!!.longitude)
        this.map = googleMap
        this.map!!.moveCamera(CameraUpdateFactory.newLatLngZoom(position, 15f)) // Vienna
        getFineLocationPermission()
        this.map!!.setOnMarkerClickListener(this)
        this.map!!.uiSettings.isRotateGesturesEnabled = true
        this.map!!.uiSettings.isZoomGesturesEnabled = true
        this.map!!.setOnInfoWindowClickListener(this)
        this.map!!.setOnMapLongClickListener(this)


    }

1 Ответ

1 голос
/ 02 марта 2020

Вы используете оператор ненулевого подтверждения , который будет выбрасывать NPL, если любое из значений равно нулю, поэтому ваш currentLocation равен нулю, что вызывает исключение.

val position = if (currentLocation != null) LatLng(currentLocation!!.latitude, currentLocation!!.longitude) else  LatLng(currentLocation!!.latitude, currentLocation!!.longitude)

здесь, если currentLocation равно нулю, вы все равно используете его внутри else случая, который явно является root причиной исключения (выбрасывается !!)

Либо используйте фиктивное значение (желательно исправить проблему с currentLocation), либо вы можете использовать безопасный вызов с let как .?let

currentLocation?.let{ // run if currentLocation is not null
    val position = LatLng(it.latitude, it.longitude)
    //... code 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...