Класс ActivityNotFoundException
Класс ActivityNotFoundException
наследует RuntimeException.
Его выбрасывают при
startActivity,
если ни одно приложение не объявило
подходящий компонент для
Intent.
Частые причины: опечатка в action,
забытый queries в манифесте
или intent без категории CATEGORY_DEFAULT.
Пример
Давайте поймаем ошибку при запуске несуществующего action:
import android.content.ActivityNotFoundException
import android.content.Intent
import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Text
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val line = try {
startActivity(Intent("abcde.action.12345"))
"abcde"
} catch (e: ActivityNotFoundException) {
Log.e("abcde", "12345")
"12345"
}
setContent {
Text(text = line)
}
}
}
Система не находит activity, бросает
ActivityNotFoundException, приложение
показывает "12345" вместо падения.
Смотрите также
-
класс
Intent,
который должен указывать на существующий экран -
метод
startActivity,
при вызове которого возникает исключение -
класс
SecurityException,
если запуск запрещён политикой -
класс
NameNotFoundException,
когда не найден пакет по имени