Android App Supernotcalledexception Crash, wenn er aus dem Hintergrund zurückkommt
Posted: 09 Sep 2025, 16:13
Ich habe eine Android -App und über Firebases Crashlytics erhalte ich Berichte über diesen Absturz von vor langer Zeit: < /p>
Was könnte hier passieren?
Code: Select all
Fatal Exception: android.util.SuperNotCalledException: Activity {es.aumentur.aumentur/es.aumentur.aumentur.presentation.activities.MainActivity} did not call through to super.onCreate()
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3517)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3700)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2136)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:236)
at android.app.ActivityThread.main(ActivityThread.java:8061)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967)
< /code>
Die Ausnahme legt nahe, dass der Superkonstruktor für die Mainaktivität nicht aufgerufen wurde, was unmöglich ist, wenn ich den Konstruktor in OnCreate nenne: < /p>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding?.root
setContentView(view)
< /code>
Als ich versuchte, den Fehler zu replizieren, stellte ich fest, dass dies nur geschieht, wenn er zur App zurückkommt, nachdem er ihn im Hintergrund gelassen hat. Ich mache nichts Besonderes beim Betreten des Vordergrunds, wie Sie hier sehen können: < /p>
class AumenturLifecycleListener: LifecycleEventObserver {
override fun onStateChanged(source: LifecycleOwner, event: Lifecycle.Event) {
when (event) {
Lifecycle.Event.ON_START, Lifecycle.Event.ON_RESUME -> {
App.isForeground = true
console.log("AumenturLifecycleListener", "Returning to foreground…")
}
Lifecycle.Event.ON_STOP -> {
App.isForeground = false
console.log("AumenturLifecycleListener","Moving to background…")
PacksRepository.shared().saveCurrentVisit()
BigDataRepository.shared().sendAppCloseEvent()
}
else -> {}
}
}
}