Найти тему
Вайфай Подземелье

Почему может вылетать приложение на kotlin

Написанное на языке kotlin в android studio приложение может вылетать из-за ошибок в коде:

Попытка записи в файл

Метод writeText ссылается на несуществующий файл.

Ошибка прав доступа

Например: даже если права чтения и записи выданы, это не означает что можно записывать в файл в любом месте корневого каталога. Правильный путь - getExternalFilesDir(null).toString. Этот путь означает /Android/data/ имя пакета/files/

Ошибка в выдаче прав Android 10+

В андроид 10 права выдаются так:

requestPermissions.launch(имя разрешения), где "requestPermissions" это имя переменной, декларируемой как Private:

private val requestPermissions = registerForActivityResult(ActivityResultContracts.RequestPermission()) {Granted ->

when (Granted){

true -> //права выданы, можно продолжать выполнение программы

false -> //права не выданы

}}}

Запрос несуществующего элемента списка

При выполнении запроса в форме table[i], где i это запрашиваемый индекс списка, приложение вылетает если такой индекс не существует. Если предполагается использовать случайный элемент списка (Math.random), то прямое присвоение типа val nomer = table(math.random) вызывает ошибку. У меня получилось только через отдельный List:

Val nomer = ListOf(math.random)

Println(nomer)

Неправильная работа с корутинами (suspend fun)

Суть: вызов функции, содержащей корутину (или использование delay) без слова suspend:

Private suspend fun test()

Подобные вещи вызвали у меня затруднения при изучении языка kotlin, на некоторые простые вопросы в интернете очень сложно искать ответы.