From e92418edcaf5e0bf45c5923dd635abce78f4bb11 Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Sun, 5 Sep 2021 19:16:49 +0300 Subject: [PATCH] Fix minSdkVersion in deploy step Deploy step uses AndroidManager::minimumSDK() which looks for the version in the AndroidManifest.xml file which used to contain the minimum and target sdk, but if the manifest doesn't contain that value, this logic returns 0. So, return the defaultMinimumSDK() in case the first way fails. Change-Id: Id10e552d7c8de4d3544b7fa8f26ae5dd9e974df5 Reviewed-by: Alessandro Portale --- src/plugins/android/androiddeployqtstep.cpp | 3 +-- src/plugins/android/androidmanager.cpp | 13 +++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp index 7955677111d..24316cf15f9 100644 --- a/src/plugins/android/androiddeployqtstep.cpp +++ b/src/plugins/android/androiddeployqtstep.cpp @@ -134,9 +134,8 @@ bool AndroidDeployQtStep::init() QTC_ASSERT(bc, return false); auto androidBuildApkStep = bc->buildSteps()->firstOfType(); - int minTargetApi = AndroidManager::minimumSDK(target()); qCDebug(deployStepLog) << "Target architecture:" << m_androidABIs - << "Min target API" << minTargetApi; + << "Min target API" << AndroidManager::minimumSDK(target()); // Try to re-use user-provided information from an earlier step of the same type. BuildStepList *bsl = stepList(); diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp index 274b338f805..f9332226297 100644 --- a/src/plugins/android/androidmanager.cpp +++ b/src/plugins/android/androidmanager.cpp @@ -143,7 +143,10 @@ int AndroidManager::minimumSDK(const Target *target) QDomDocument doc; if (!openXmlFile(doc, AndroidManager::manifestSourcePath(target))) return minimumSDK(target->kit()); - return parseMinSdk(doc.documentElement()); + const int minSdkVersion = parseMinSdk(doc.documentElement()); + if (minSdkVersion == 0) + return AndroidManager::defaultMinimumSDK(QtSupport::QtKitAspect::qtVersion(target->kit())); + return minSdkVersion; } /*! @@ -152,17 +155,19 @@ int AndroidManager::minimumSDK(const Target *target) */ int AndroidManager::minimumSDK(const Kit *kit) { - int minSDKVersion = -1; + int minSdkVersion = -1; QtSupport::BaseQtVersion *version = QtSupport::QtKitAspect::qtVersion(kit); if (version && version->targetDeviceTypes().contains(Constants::ANDROID_DEVICE_TYPE)) { FilePath stockManifestFilePath = FilePath::fromUserInput( version->prefix().toString() + "/src/android/templates/AndroidManifest.xml"); QDomDocument doc; if (openXmlFile(doc, stockManifestFilePath)) { - minSDKVersion = parseMinSdk(doc.documentElement()); + minSdkVersion = parseMinSdk(doc.documentElement()); } } - return minSDKVersion; + if (minSdkVersion == 0) + return AndroidManager::defaultMinimumSDK(version); + return minSdkVersion; } QString AndroidManager::buildTargetSDK(const Target *target)