diff options
author | Vikas Pachdha <vikas.pachdha@qt.io> | 2017-08-08 14:27:54 +0200 |
---|---|---|
committer | Vikas Pachdha <vikas.pachdha@qt.io> | 2017-08-29 13:27:55 +0000 |
commit | 2e821a7730fa40930dde694d59c69a72d5c43763 (patch) | |
tree | e72d02f511e979602ea09554c163775a53da19f1 | |
parent | b6c1cb3487d2850c4e9dfc2818ee920bffc1031d (diff) | |
download | qt-creator-2e821a7730fa40930dde694d59c69a72d5c43763.tar.gz |
Android: Fix default JDK path discovery
Task-number: QTCREATORBUG-18691
Change-Id: Ibd17e7edf1c2cfdcc54ff2b9f16a9125bb217a84
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
-rw-r--r-- | src/plugins/android/androidconfigurations.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index ccefeef4e2..cba8f4d438 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -70,6 +70,7 @@ #include <QThread> #include <functional> +#include <memory> using namespace ProjectExplorer; using namespace Utils; @@ -82,7 +83,7 @@ namespace Android { using namespace Internal; namespace { - + const char jdkSettingsPath[] = "HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit"; const QVersionNumber sdkToolsAntMissingVersion(25, 3, 0); const QLatin1String SettingsGroup("AndroidConfigurations"); @@ -1247,8 +1248,18 @@ void AndroidConfigurations::load() } } } else if (HostOsInfo::isWindowsHost()) { - QSettings settings(QLatin1String("HKEY_LOCAL_MACHINE\\SOFTWARE\\Javasoft\\Java Development Kit"), QSettings::NativeFormat); - QStringList allVersions = settings.childGroups(); + QStringList allVersions; + std::unique_ptr<QSettings> settings(new QSettings(jdkSettingsPath, + QSettings::NativeFormat)); + allVersions = settings->childGroups(); +#ifdef Q_OS_WIN +#if QT_VERSION >= QT_VERSION_CHECK(5, 7, 0) + if (allVersions.isEmpty()) { + settings.reset(new QSettings(jdkSettingsPath, QSettings::Registry64Format)); + allVersions = settings->childGroups(); + } +#endif +#endif QString javaHome; int major = -1; int minor = -1; @@ -1264,9 +1275,9 @@ void AndroidConfigurations::load() if (tmpMajor > major || (tmpMajor == major && tmpMinor > minor)) { - settings.beginGroup(version); - QString tmpJavaHome = settings.value(QLatin1String("JavaHome")).toString(); - settings.endGroup(); + settings->beginGroup(version); + QString tmpJavaHome = settings->value(QLatin1String("JavaHome")).toString(); + settings->endGroup(); if (!QFileInfo::exists(tmpJavaHome)) continue; |