diff --git a/app/src/main/java/com/itsaky/androidide/activities/editor/BaseEditorActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/editor/BaseEditorActivity.kt index 9f72f90d7..c44686ecc 100644 --- a/app/src/main/java/com/itsaky/androidide/activities/editor/BaseEditorActivity.kt +++ b/app/src/main/java/com/itsaky/androidide/activities/editor/BaseEditorActivity.kt @@ -192,13 +192,12 @@ abstract class BaseEditorActivity : if (packageName != null) { Snackbar.make(binding.realContainer, string.msg_action_open_application, Snackbar.LENGTH_LONG) .setAction(string.yes) { - val launchIntent = packageManager.getLaunchIntentForPackage(packageName) - launchIntent?.let { startActivity(it) } + tryLaunchApp(packageName) } .show() } } - + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -407,6 +406,18 @@ abstract class BaseEditorActivity : viewModel.statusText = text viewModel.statusGravity = gravity } + + private fun tryLaunchApp(packageName: String) { + val launchIntent = packageManager.getLaunchIntentForPackage(packageName) + launchIntent?.let { + try { + startActivity(it) + } catch (e: Throwable) { + flashError(string.msg_app_launch_failed) + log.error("Failed to launch application with package name '$packageName'", e) + } + } + } private fun checkIsDestroying() { if (!isDestroying && isFinishing) { diff --git a/resources/src/main/res/values/strings.xml b/resources/src/main/res/values/strings.xml index 13686d0dc..87f45caca 100644 --- a/resources/src/main/res/values/strings.xml +++ b/resources/src/main/res/values/strings.xml @@ -536,4 +536,5 @@ Material You Enjoy an experience closer to your device (requires restart). Project configuration + Failed to launch application. See IDE logs for more info.