From 1525f64b9aed58f56455dabb4145c964d40190c2 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Thu, 18 Jul 2024 18:03:11 +0200 Subject: [PATCH] Android: Fix asserts triggered on app startup The QVariant values of Store map are apparently of QStringList type, not QString. This fixes the following asserts triggered on every startup: "sd.first().typeId() == QMetaType::QString". Change-Id: I84eb6a942503632d047939b138727c75e9e7037e Reviewed-by: Alessandro Portale --- src/plugins/android/androidrunnerworker.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/plugins/android/androidrunnerworker.cpp b/src/plugins/android/androidrunnerworker.cpp index 095c6e99e84..a764167f365 100644 --- a/src/plugins/android/androidrunnerworker.cpp +++ b/src/plugins/android/androidrunnerworker.cpp @@ -171,24 +171,26 @@ AndroidRunnerWorker::AndroidRunnerWorker(RunWorker *runner, const QString &packa m_extraAppParams = runControl->commandLine().arguments(); if (const Store sd = runControl->settingsData(Constants::ANDROID_AM_START_ARGS); - !sd.values().isEmpty()) { + !sd.isEmpty()) { QTC_CHECK(sd.first().typeId() == QMetaType::QString); const QString startArgs = sd.first().toString(); m_amStartExtraArgs = ProcessArgs::splitArgs(startArgs, OsTypeOtherUnix); } if (const Store sd = runControl->settingsData(Constants::ANDROID_PRESTARTSHELLCMDLIST); - !sd.values().isEmpty()) { - QTC_CHECK(sd.first().typeId() == QMetaType::QString); - const QStringList commands = sd.first().toString().split('\n', Qt::SkipEmptyParts); + !sd.isEmpty()) { + const QVariant &first = sd.first(); + QTC_CHECK(first.typeId() == QMetaType::QStringList); + const QStringList commands = first.toStringList(); for (const QString &shellCmd : commands) m_beforeStartAdbCommands.append(QString("shell %1").arg(shellCmd)); } if (const Store sd = runControl->settingsData(Constants::ANDROID_POSTFINISHSHELLCMDLIST); - !sd.values().isEmpty()) { - QTC_CHECK(sd.first().typeId() == QMetaType::QString); - const QStringList commands = sd.first().toString().split('\n', Qt::SkipEmptyParts); + !sd.isEmpty()) { + const QVariant &first = sd.first(); + QTC_CHECK(first.typeId() == QMetaType::QStringList); + const QStringList commands = first.toStringList(); for (const QString &shellCmd : commands) m_afterFinishAdbCommands.append(QString("shell %1").arg(shellCmd)); }