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 93ae9088178..e0adbc101b7 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtActivityLoader.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityLoader.java @@ -14,6 +14,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.res.Resources; import android.os.Bundle; +import android.system.Os; import android.util.Base64; import android.util.DisplayMetrics; import android.util.Log; @@ -134,6 +135,14 @@ public class QtActivityLoader extends QtLoader { String extraAppParams = extras.getString("extraappparams"); appendApplicationParameters(getDecodedUtfString(extraAppParams)); } + + m_debuggerSleepMs = 1000; + if (Os.getenv("QT_ANDROID_DEBUGGER_MAIN_THREAD_SLEEP_MS") != null) { + try { + m_debuggerSleepMs = Integer.parseInt(Os.getenv("QT_ANDROID_DEBUGGER_MAIN_THREAD_SLEEP_MS")); + } catch (NumberFormatException ignored) { + } + } } else { Log.d(QtNative.QtTAG, "Not in debug mode! It is not allowed to use extra arguments " + "in non-debug mode."); diff --git a/src/android/jar/src/org/qtproject/qt/android/QtLoader.java b/src/android/jar/src/org/qtproject/qt/android/QtLoader.java index 69eca0d91da..fe4ac990fb8 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtLoader.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtLoader.java @@ -46,6 +46,8 @@ public abstract class QtLoader { protected String m_applicationParameters = ""; protected HashMap m_environmentVariables = new HashMap<>(); + protected int m_debuggerSleepMs = 0; + /** * Sets and initialize the basic pieces. * Initializes the class loader since it doesn't rely on anything @@ -509,6 +511,9 @@ public abstract class QtLoader { String mainLibPath = getLibrariesFullPaths(oneEntryArray).get(0); final boolean[] success = {true}; QtNative.getQtThread().run(() -> { + if (m_debuggerSleepMs > 0) + QtNative.getQtThread().sleep(m_debuggerSleepMs); + m_mainLibPath = loadLibraryHelper(mainLibPath); if (m_mainLibPath == null) success[0] = false; diff --git a/src/android/jar/src/org/qtproject/qt/android/QtThread.java b/src/android/jar/src/org/qtproject/qt/android/QtThread.java index 2d6f430b38b..fb6d7ccf612 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtThread.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtThread.java @@ -42,6 +42,14 @@ public class QtThread { } } + public void sleep(int milliseconds) { + try { + m_qtThread.sleep(milliseconds); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + public void run(final Runnable runnable) { final Semaphore sem = new Semaphore(0); synchronized (m_qtThread) {