From b9f5b892d46b2c77ea0f0a1b44f9f0c182f05c28 Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Mon, 18 Dec 2023 16:12:50 +0200 Subject: [PATCH] Android: don't call QtLoader.finish() on null activity/service Task-number: QTBUG-115016 Change-Id: Ia7cf066261bd0bb17d67423b5edf7b72ec33d577 Reviewed-by: Janne Juntunen Reviewed-by: Assam Boudjelthia Reviewed-by: Petri Virkkunen (cherry picked from commit 84f0b483b5befb2fef070b5c05c17e1fcd7dac1d) Reviewed-by: Qt Cherry-pick Bot --- .../src/org/qtproject/qt/android/QtActivityLoader.java | 8 ++++++++ .../jar/src/org/qtproject/qt/android/QtServiceLoader.java | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/android/jar/src/org/qtproject/qt/android/QtActivityLoader.java b/src/android/jar/src/org/qtproject/qt/android/QtActivityLoader.java index 6f15a7326eb..1b5eac55ed2 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtActivityLoader.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityLoader.java @@ -44,6 +44,10 @@ class QtActivityLoader extends QtLoader { } private void showErrorDialog() { + if (m_activity == null) { + Log.w(QtTAG, "cannot show the error dialog from a null activity object"); + return; + } Resources resources = m_activity.getResources(); String packageName = m_activity.getPackageName(); AlertDialog errorDialog = new AlertDialog.Builder(m_activity).create(); @@ -57,6 +61,10 @@ class QtActivityLoader extends QtLoader { @Override protected void finish() { + if (m_activity == null) { + Log.w(QtTAG, "finish() called when activity object is null"); + return; + } showErrorDialog(); m_activity.finish(); } diff --git a/src/android/jar/src/org/qtproject/qt/android/QtServiceLoader.java b/src/android/jar/src/org/qtproject/qt/android/QtServiceLoader.java index 281c871e929..f54627466d9 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtServiceLoader.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtServiceLoader.java @@ -36,7 +36,10 @@ class QtServiceLoader extends QtLoader { @Override protected void finish() { - m_service.stopSelf(); + if (m_service != null) + m_service.stopSelf(); + else + Log.w(QtTAG, "finish() called when service object is null"); } @Override