diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp index 2c7ddb08100..fcb2cae8c9a 100644 --- a/src/plugins/platforms/android/androidjnimain.cpp +++ b/src/plugins/platforms/android/androidjnimain.cpp @@ -36,6 +36,9 @@ #include + +using namespace Qt::StringLiterals; + QT_BEGIN_NAMESPACE static JavaVM *m_javaVM = nullptr; @@ -439,14 +442,16 @@ namespace QtAndroid static jboolean startQtAndroidPlugin(JNIEnv *env, jobject /*object*/, jstring paramsString) { + Q_UNUSED(env) + m_androidPlatformIntegration = nullptr; m_androidAssetsFileEngineHandler = new AndroidAssetsFileEngineHandler(); m_androidContentFileEngineHandler = new AndroidContentFileEngineHandler(); m_mainLibraryHnd = nullptr; - const char *nativeString = env->GetStringUTFChars(paramsString, 0); - const QStringList argsList = QProcess::splitCommand(QString::fromUtf8(nativeString)); - env->ReleaseStringUTFChars(paramsString, nativeString); + // QProcess::splitCommand() treats triple quotes as the quote character itself. + QString params = QJniObject(paramsString).toString().replace("\""_L1, "\"\"\""_L1); + const QStringList argsList = QProcess::splitCommand(params); for (const QString &arg : argsList) m_applicationParams.append(arg.toUtf8()); diff --git a/src/tools/androidtestrunner/main.cpp b/src/tools/androidtestrunner/main.cpp index defa7500aea..2ef1f22601e 100644 --- a/src/tools/androidtestrunner/main.cpp +++ b/src/tools/androidtestrunner/main.cpp @@ -355,7 +355,7 @@ static bool parseTestArgs() if (match.hasMatch()) { logType = match.capturedTexts().at(1); } else { - unhandledArgs << QStringLiteral(" \\\"%1\\\"").arg(arg); + unhandledArgs << " %1"_L1.arg(arg).replace("\""_L1, "\\\""_L1); } } }