forked from qt-creator/qt-creator
Android: fix app logcat not always displayed
Fixes: QTCREATORBUG-23919 Fixes: QTCREATORBUG-23177 Task-number: QTCREATORBUG-23291 Change-Id: Ib053a15f2fd8e491a581268f3630725593186a47 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
This commit is contained in:
@@ -127,21 +127,23 @@ static void findProcessPID(QFutureInterface<qint64> &fi, QStringList selector,
|
|||||||
if (packageName.isEmpty())
|
if (packageName.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
QStringList args = {selector};
|
||||||
|
FilePath adbPath = AndroidConfigurations::currentConfig().adbToolPath();
|
||||||
|
args.append("shell");
|
||||||
|
args.append(preNougat ? pidScriptPreNougat : pidScript.arg(packageName));
|
||||||
|
|
||||||
qint64 processPID = -1;
|
qint64 processPID = -1;
|
||||||
chrono::high_resolution_clock::time_point start = chrono::high_resolution_clock::now();
|
chrono::high_resolution_clock::time_point start = chrono::high_resolution_clock::now();
|
||||||
do {
|
do {
|
||||||
QThread::msleep(200);
|
QThread::msleep(200);
|
||||||
FilePath adbPath = AndroidConfigurations::currentConfig().adbToolPath();
|
const auto out = SynchronousProcess().runBlocking({adbPath, args}).allRawOutput();
|
||||||
selector.append("shell");
|
|
||||||
selector.append(preNougat ? pidScriptPreNougat : pidScript.arg(packageName));
|
|
||||||
const auto out = SynchronousProcess().runBlocking({adbPath, selector}).allRawOutput();
|
|
||||||
if (preNougat) {
|
if (preNougat) {
|
||||||
processPID = extractPID(out, packageName);
|
processPID = extractPID(out, packageName);
|
||||||
} else {
|
} else {
|
||||||
if (!out.isEmpty())
|
if (!out.isEmpty())
|
||||||
processPID = out.trimmed().toLongLong();
|
processPID = out.trimmed().toLongLong();
|
||||||
}
|
}
|
||||||
} while (processPID == -1 && !isTimedOut(start) && !fi.isCanceled());
|
} while ((processPID == -1 || processPID == 0) && !isTimedOut(start) && !fi.isCanceled());
|
||||||
|
|
||||||
qCDebug(androidRunWorkerLog) << "PID found:" << processPID << ", PreNougat:" << preNougat;
|
qCDebug(androidRunWorkerLog) << "PID found:" << processPID << ", PreNougat:" << preNougat;
|
||||||
if (!fi.isCanceled())
|
if (!fi.isCanceled())
|
||||||
|
Reference in New Issue
Block a user