diff --git a/src/android/java/src/org/qtproject/qt/android/bindings/QtLoader.java b/src/android/java/src/org/qtproject/qt/android/bindings/QtLoader.java index 66ba029acea..71595fb9fd2 100644 --- a/src/android/java/src/org/qtproject/qt/android/bindings/QtLoader.java +++ b/src/android/java/src/org/qtproject/qt/android/bindings/QtLoader.java @@ -399,7 +399,7 @@ public abstract class QtLoader { } if (appParams != null) - loaderParams.putString(APPLICATION_PARAMETERS_KEY, appParams.replace(' ', '\t').trim()); + loaderParams.putString(APPLICATION_PARAMETERS_KEY, appParams); loadApplication(loaderParams); return; diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp index 3b5e6566304..fee7c438e51 100644 --- a/src/plugins/platforms/android/androidjnimain.cpp +++ b/src/plugins/platforms/android/androidjnimain.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -445,11 +446,11 @@ static jboolean startQtAndroidPlugin(JNIEnv *env, jobject /*object*/, jstring pa m_mainLibraryHnd = nullptr; const char *nativeString = env->GetStringUTFChars(paramsString, 0); - QByteArray string = nativeString; + const QStringList argsList = QProcess::splitCommand(QString::fromUtf8(nativeString)); env->ReleaseStringUTFChars(paramsString, nativeString); - for (auto str : string.split('\t')) - m_applicationParams.append(str.split(' ')); + for (const QString &arg : argsList) + m_applicationParams.append(arg.toUtf8()); // Go home QDir::setCurrent(QDir::homePath()); diff --git a/src/tools/androidtestrunner/main.cpp b/src/tools/androidtestrunner/main.cpp index 489560a3e09..a5e249affc1 100644 --- a/src/tools/androidtestrunner/main.cpp +++ b/src/tools/androidtestrunner/main.cpp @@ -313,7 +313,7 @@ static bool parseTestArgs() QString file; QString logType; - QString unhandledArgs; + QStringList unhandledArgs; for (int i = 0; i < g_options.testArgsList.size(); ++i) { const QString &arg = g_options.testArgsList[i].trimmed(); if (arg == QStringLiteral("--")) @@ -335,7 +335,7 @@ static bool parseTestArgs() if (match.hasMatch()) { logType = match.capturedTexts().at(1); } else { - unhandledArgs += QStringLiteral(" %1").arg(arg); + unhandledArgs << QStringLiteral(" \\\"%1\\\"").arg(arg); } } } @@ -345,10 +345,13 @@ static bool parseTestArgs() for (const auto &format : g_options.outFiles.keys()) g_options.testArgs += QStringLiteral(" -o output.%1,%1").arg(format); - g_options.testArgs += unhandledArgs; - g_options.testArgs = QStringLiteral("shell am start -e applicationArguments \\\"%1\\\" -n %2/%3").arg(shellQuote(g_options.testArgs.trimmed()), - g_options.package, - g_options.activity); + g_options.testArgs += unhandledArgs.join(u' '); + + g_options.testArgs = QStringLiteral("shell am start -e applicationArguments \"%1\" -n %2/%3") + .arg(shellQuote(g_options.testArgs.trimmed())) + .arg(g_options.package) + .arg(g_options.activity); + return true; }