Приложение закрывается сразу при запуске после переключения значков запуска (класс активности не существует)Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Приложение закрывается сразу при запуске после переключения значков запуска (класс активности не существует)

Сообщение Anonymous »

Я добавил несколько значков запуска, используя псевдоним активности для динамического переключения значка приложения во время выполнения. Но после перехода к основному действию приложение сразу вылетает. Я не могу понять, что делать.
Это мой псевдоним активности, который я помещаю в манифест внутри тега приложения — это мой объект переключения приложения –

Код: Выделить всё

object AppIconSwitcher {
fun switchToYellow(context: Context) {
val pm = context.packageManager

val yellow = ComponentName(context, "com.manage.MainActivity")
val green = ComponentName(context, "com.manage.GreenIcon")

pm.setComponentEnabledSetting(yellow,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP)

pm.setComponentEnabledSetting(green,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP)

pm.setComponentEnabledSetting(blue,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP)
}

fun switchToGreen(context: Context) {
val pm = context.packageManager

val yellow = ComponentName(context, "com.manage.MainActivity")
val green = ComponentName(context, "com.manage.GreenIcon")

pm.setComponentEnabledSetting(yellow,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP)

pm.setComponentEnabledSetting(green,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP)

pm.setComponentEnabledSetting(blue,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP)
}}
Я уже вошел в систему как рабочий, поэтому после перехода к MainActivity этот код сразу же перейдет к WorkerMainActivity, но перед этим я хочу, чтобы значок был выбран как зеленый значок, а затем перешел к WorkerMainActivity. Я делаю так -

Код: Выделить всё

db.collection("users").document(uid).get()
.addOnSuccessListener { document ->
if (document != null && document.exists()) {
val role = document.getString("role")
when (role) {
"Worker" -> { switchToGreen(context)
context.startActivity(Intent(context, WorkerMainActivity::class.java))
(context as? Activity)?.finish()
}
"Manager" -> {
context.startActivity(Intent(context, ManagerMainActivity::class.java))
(context as? Activity)?.finish()
}
else -> {
Toast.makeText(context, "Unknown user role", Toast.LENGTH_SHORT).show()
}
}
} else {
Toast.makeText(context, "User data not found", Toast.LENGTH_SHORT).show()
}
}
.addOnFailureListener { e ->
Toast.makeText(context, "Failed to fetch user role: ${e.message}", Toast.LENGTH_LONG).show()
}
Но здесь приложение вылетает.

Подробнее здесь: https://stackoverflow.com/questions/798 ... vity-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»