forked from qt-creator/qt-creator
Android: Warn if sdkmanager could not be run
Add a line in the error checking for "SDK manager runs" Fixes: QTCREATORBUG-22626 Change-Id: I63f783b376056a28c106bad1ce8c874acf6897f2 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -227,6 +227,9 @@ private:
|
|||||||
QString m_licenseTextCache;
|
QString m_licenseTextCache;
|
||||||
QByteArray m_licenseUserInput;
|
QByteArray m_licenseUserInput;
|
||||||
mutable QReadWriteLock m_licenseInputLock;
|
mutable QReadWriteLock m_licenseInputLock;
|
||||||
|
|
||||||
|
public:
|
||||||
|
bool m_packageListingSuccessful = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -372,6 +375,11 @@ bool AndroidSdkManager::isBusy() const
|
|||||||
return m_d->m_activeOperation && !m_d->m_activeOperation->isFinished();
|
return m_d->m_activeOperation && !m_d->m_activeOperation->isFinished();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool AndroidSdkManager::packageListingSuccessful() const
|
||||||
|
{
|
||||||
|
return m_d->m_packageListingSuccessful;
|
||||||
|
}
|
||||||
|
|
||||||
QFuture<QString> AndroidSdkManager::availableArguments() const
|
QFuture<QString> AndroidSdkManager::availableArguments() const
|
||||||
{
|
{
|
||||||
return Utils::runAsync(&AndroidSdkManagerPrivate::parseCommonArguments, m_d.get());
|
return Utils::runAsync(&AndroidSdkManagerPrivate::parseCommonArguments, m_d.get());
|
||||||
@@ -806,6 +814,7 @@ void AndroidSdkManagerPrivate::reloadSdkPackages()
|
|||||||
|
|
||||||
if (m_config.sdkToolsVersion() < sdkManagerIntroVersion) {
|
if (m_config.sdkToolsVersion() < sdkManagerIntroVersion) {
|
||||||
// Old Sdk tools.
|
// Old Sdk tools.
|
||||||
|
m_packageListingSuccessful = true;
|
||||||
AndroidToolManager toolManager(m_config);
|
AndroidToolManager toolManager(m_config);
|
||||||
auto toAndroidSdkPackages = [](SdkPlatform *p) -> AndroidSdkPackage *{
|
auto toAndroidSdkPackages = [](SdkPlatform *p) -> AndroidSdkPackage *{
|
||||||
return p;
|
return p;
|
||||||
@@ -815,7 +824,8 @@ void AndroidSdkManagerPrivate::reloadSdkPackages()
|
|||||||
QString packageListing;
|
QString packageListing;
|
||||||
QStringList args({"--list", "--verbose"});
|
QStringList args({"--list", "--verbose"});
|
||||||
args << m_config.sdkManagerToolArgs();
|
args << m_config.sdkManagerToolArgs();
|
||||||
if (sdkManagerCommand(m_config, args, &packageListing)) {
|
m_packageListingSuccessful = sdkManagerCommand(m_config, args, &packageListing);
|
||||||
|
if (m_packageListingSuccessful) {
|
||||||
SdkManagerOutputParser parser(m_allPackages);
|
SdkManagerOutputParser parser(m_allPackages);
|
||||||
parser.parsePackageListing(packageListing);
|
parser.parsePackageListing(packageListing);
|
||||||
}
|
}
|
||||||
|
@@ -78,6 +78,8 @@ public:
|
|||||||
void reloadPackages(bool forceReload = false);
|
void reloadPackages(bool forceReload = false);
|
||||||
bool isBusy() const;
|
bool isBusy() const;
|
||||||
|
|
||||||
|
bool packageListingSuccessful() const;
|
||||||
|
|
||||||
QFuture<QString> availableArguments() const;
|
QFuture<QString> availableArguments() const;
|
||||||
QFuture<OperationOutput> updateAll();
|
QFuture<OperationOutput> updateAll();
|
||||||
QFuture<OperationOutput> update(const QStringList &install, const QStringList &uninstall);
|
QFuture<OperationOutput> update(const QStringList &install, const QStringList &uninstall);
|
||||||
|
@@ -76,6 +76,7 @@ enum AndroidValidation {
|
|||||||
SdkToolsInstalledRow,
|
SdkToolsInstalledRow,
|
||||||
PlatformToolsInstalledRow,
|
PlatformToolsInstalledRow,
|
||||||
BuildToolsInstalledRow,
|
BuildToolsInstalledRow,
|
||||||
|
SdkManagerSuccessfulRow,
|
||||||
PlatformSdkInstalledRow,
|
PlatformSdkInstalledRow,
|
||||||
NdkPathExistsRow,
|
NdkPathExistsRow,
|
||||||
NdkDirStructureRow,
|
NdkDirStructureRow,
|
||||||
@@ -259,6 +260,8 @@ AndroidSettingsWidget::AndroidSettingsWidget(QWidget *parent)
|
|||||||
androidValidationPoints[SdkPathWritableRow] = tr("Android SDK path writable.");
|
androidValidationPoints[SdkPathWritableRow] = tr("Android SDK path writable.");
|
||||||
androidValidationPoints[SdkToolsInstalledRow] = tr("SDK tools installed.");
|
androidValidationPoints[SdkToolsInstalledRow] = tr("SDK tools installed.");
|
||||||
androidValidationPoints[PlatformToolsInstalledRow] = tr("Platform tools installed.");
|
androidValidationPoints[PlatformToolsInstalledRow] = tr("Platform tools installed.");
|
||||||
|
androidValidationPoints[SdkManagerSuccessfulRow] = tr(
|
||||||
|
"SDK manager runs (requires exactly Java 1.8).");
|
||||||
androidValidationPoints[BuildToolsInstalledRow] = tr("Build tools installed.");
|
androidValidationPoints[BuildToolsInstalledRow] = tr("Build tools installed.");
|
||||||
androidValidationPoints[PlatformSdkInstalledRow] = tr("Platform SDK installed.");
|
androidValidationPoints[PlatformSdkInstalledRow] = tr("Platform SDK installed.");
|
||||||
androidValidationPoints[NdkPathExistsRow] = tr("Android NDK path exists.");
|
androidValidationPoints[NdkPathExistsRow] = tr("Android NDK path exists.");
|
||||||
@@ -425,12 +428,14 @@ void AndroidSettingsWidget::validateSdk()
|
|||||||
summaryWidget->setPointValid(BuildToolsInstalledRow,
|
summaryWidget->setPointValid(BuildToolsInstalledRow,
|
||||||
!m_androidConfig.buildToolsVersion().isNull());
|
!m_androidConfig.buildToolsVersion().isNull());
|
||||||
|
|
||||||
|
summaryWidget->setPointValid(SdkManagerSuccessfulRow, m_sdkManager->packageListingSuccessful());
|
||||||
// installedSdkPlatforms should not trigger a package reload as validate SDK is only called
|
// installedSdkPlatforms should not trigger a package reload as validate SDK is only called
|
||||||
// after AndroidSdkManager::packageReloadFinished.
|
// after AndroidSdkManager::packageReloadFinished.
|
||||||
summaryWidget->setPointValid(PlatformSdkInstalledRow,
|
summaryWidget->setPointValid(PlatformSdkInstalledRow,
|
||||||
!m_sdkManager->installedSdkPlatforms().isEmpty());
|
!m_sdkManager->installedSdkPlatforms().isEmpty());
|
||||||
updateUI();
|
updateUI();
|
||||||
bool sdkToolsOk = summaryWidget->rowsOk({SdkPathExistsRow, SdkPathWritableRow, SdkToolsInstalledRow});
|
bool sdkToolsOk = summaryWidget->rowsOk(
|
||||||
|
{SdkPathExistsRow, SdkPathWritableRow, SdkToolsInstalledRow, SdkManagerSuccessfulRow});
|
||||||
bool componentsOk = summaryWidget->rowsOk({PlatformToolsInstalledRow,
|
bool componentsOk = summaryWidget->rowsOk({PlatformToolsInstalledRow,
|
||||||
BuildToolsInstalledRow,
|
BuildToolsInstalledRow,
|
||||||
PlatformSdkInstalledRow});
|
PlatformSdkInstalledRow});
|
||||||
|
Reference in New Issue
Block a user