Вообще переход на новую Activity делается по-другому. Почитай книгу
Android. Программирование для профессионалов, много вопросов отпадут. Только обзаведись английской версией, чтобы смотреть в неё, когда не понятно, что имеется ввиду под некоторыми словами. И подписку на клики в XML лучше не делать. Методы именуются с маленькой буквы (camelCase).
Инструкция, как ловить исключения
Выполни по инструкции ниже всё и потом ты сможешь смотреть, какое произошло исключение, если приложение будет крашиться. Просто ставь точку останова на строке println(message) и когда сработает обработчик не перехваченного исключения, то там ты и посмотришь, что в нём написано.
Создай класс
TestAppUncaughtExceptionHandler
package com.example.test
import java.lang.Thread.UncaughtExceptionHandler
class TestAppUncaughtExceptionHandler : UncaughtExceptionHandler {
override fun uncaughtException(thread: Thread, ex: Throwable) {
val message = "Thread name: ${thread.name}, Exception: ${ex.fillInStackTrace()}"
// На строке ниже ставь точку останова (breakpoint) и смотри, что написано в исключении.
println(message)
}
}
Создай класс
TestApplication
package com.example.test
import android.app.Application
// Указывается в манифесте, чтобы работал
class TestApplication : Application() {
override fun onCreate() {
super.onCreate()
Thread.setDefaultUncaughtExceptionHandler(TestAppUncaughtExceptionHandler())
}
}
В
AndroidManifest.xml файл добавь
android:name=".TestApplication"
Пример AndroidManifest.xml (многое удалено для краткости)
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.example.test"
xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:name=".TestApplication">
<activity
...
</activity>
</application>
</manifest>