diff options
-rw-r--r-- | src/tools/androiddeployqt/main.cpp | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/tools/androiddeployqt/main.cpp b/src/tools/androiddeployqt/main.cpp index 6b6f472f66..d42f05f4c7 100644 --- a/src/tools/androiddeployqt/main.cpp +++ b/src/tools/androiddeployqt/main.cpp @@ -2579,6 +2579,24 @@ void checkAndWarnGradleLongPaths(const QString &outputDirectory) } #endif +bool gradleSetsLegacyPackagingProperty(const QString &path) +{ + QFile file(path); + if (!file.open(QIODevice::ReadOnly)) + return false; + + const auto lines = file.readAll().split('\n'); + for (const auto &line : lines) { + if (line.contains("useLegacyPackaging")) { + const auto trimmed = line.trimmed(); + if (!trimmed.startsWith("//") && !trimmed.startsWith('*') && !trimmed.startsWith("/*")) + return true; + } + } + + return false; +} + bool buildAndroidProject(const Options &options) { GradleProperties localProperties; @@ -2587,9 +2605,13 @@ bool buildAndroidProject(const Options &options) if (!mergeGradleProperties(localPropertiesPath, localProperties)) return false; - QString gradlePropertiesPath = options.outputDirectory + "gradle.properties"_L1; + const QString gradlePropertiesPath = options.outputDirectory + "gradle.properties"_L1; GradleProperties gradleProperties = readGradleProperties(gradlePropertiesPath); - gradleProperties["android.bundle.enableUncompressedNativeLibs"] = "false"; + + const QString gradleBuildFilePath = options.outputDirectory + "build.gradle"_L1; + if (!gradleSetsLegacyPackagingProperty(gradleBuildFilePath)) + gradleProperties["android.bundle.enableUncompressedNativeLibs"] = "false"; + gradleProperties["buildDir"] = "build"; gradleProperties["qtAndroidDir"] = (options.qtInstallDirectory + "/src/android/java"_L1).toUtf8(); // The following property "qt5AndroidDir" is only for compatibility. |