примерно так, опустил остальной функционал.
Падает в loadMessage в строке id?.let { loadMessage(id) }
val messageId: String? = getMessageId()
launch {
val id = messageId
id?.let {
if(!id.isNullOrEmpty) {
loadMessageById(id)
}
}
}
fun loadMessageById(id: String?) {
id?.let { loadMessage(id) }
}
loadMessage принимает не null и падает с nullptr
Может из другого метода тоже вызывается и прилетает в метод нулл...
Поставьте отадку перед loadMessage. Подозреваю, что проблема на стороне вашего свифта или чего там
Больше нигде не вызвается, абстракция на абстракции. Только в такой последовательности может быть
Падает не закономерно, сложно отследить
Как минимум можно заменить на id?.let{ loadMessage(it)}. То есть чтобы использовалась захваченная переменна. В нынешнем виде это ни на что не должно влиять, но может быть у вас там в оригинале изменяемая переменная.
Если посмотреть в байткод, то там все равно id используется, если переменная внутри функции объявлена
Обсуждают сегодня