Причиной сбоя приложения могут быть ошибки времени компиляции или ошибки времени выполнения.
Ошибки времени компиляции могут быть синтаксическими ошибками, ошибками не найденного класса, ошибками перегрузки, которые отображаются и записываются в Android Studio. В вашем случае не будет ошибок времени компиляции, поскольку ваше приложение правильно компилируется и устанавливается на устройство.
Run-Time ошибки возникают при использовании (запуске) приложения. В основном это логические ошибки или ошибки объявления переменных. В твоем случае может быть проблема только здесь.
Когда вы запускаете приложение, выполняются коды и логика. Таким образом, если вы указали неверную логику в своем коде, например, бесконечный цикл, передачу строки вместо целочисленного типа данных и многое другое, приложение перестало работать.
Вы должны проверить журнал, чтобы увидеть, что является исключением, вызвавшим сбой. В журнале (нижняя часть среды IDE) будет указано имя исключения, элемент, который его запустил, а также ссылки на строки кода, где обнаружена проблема.
Если вы все еще не можете найти ошибку таким образом, вы можете установить точки останова слева от строк кода, где вы хотите, чтобы приложение останавливалось во время отладки, а затем запустить приложение в режиме отладки, чтобы точно увидеть, что происходит .
Еще один совет: часто, когда я был уверен в правильности своего кода, и он запускается, но вылетает, он касается объявления всех действий в манифесте (или всех служб) и установки всех необходимых разрешений. Потому что в этом случае нет явных ошибок перед запуском приложения.