• Почему приложение вылетает после перехода на третье Activity?

    Casper-SC
    @Casper-SC
    Программист (.NET)
    Вообще переход на новую 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>
    Ответ написан
    1 комментарий