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;
|
||||
QByteArray m_licenseUserInput;
|
||||
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();
|
||||
}
|
||||
|
||||
bool AndroidSdkManager::packageListingSuccessful() const
|
||||
{
|
||||
return m_d->m_packageListingSuccessful;
|
||||
}
|
||||
|
||||
QFuture<QString> AndroidSdkManager::availableArguments() const
|
||||
{
|
||||
return Utils::runAsync(&AndroidSdkManagerPrivate::parseCommonArguments, m_d.get());
|
||||
@@ -806,6 +814,7 @@ void AndroidSdkManagerPrivate::reloadSdkPackages()
|
||||
|
||||
if (m_config.sdkToolsVersion() < sdkManagerIntroVersion) {
|
||||
// Old Sdk tools.
|
||||
m_packageListingSuccessful = true;
|
||||
AndroidToolManager toolManager(m_config);
|
||||
auto toAndroidSdkPackages = [](SdkPlatform *p) -> AndroidSdkPackage *{
|
||||
return p;
|
||||
@@ -815,7 +824,8 @@ void AndroidSdkManagerPrivate::reloadSdkPackages()
|
||||
QString packageListing;
|
||||
QStringList args({"--list", "--verbose"});
|
||||
args << m_config.sdkManagerToolArgs();
|
||||
if (sdkManagerCommand(m_config, args, &packageListing)) {
|
||||
m_packageListingSuccessful = sdkManagerCommand(m_config, args, &packageListing);
|
||||
if (m_packageListingSuccessful) {
|
||||
SdkManagerOutputParser parser(m_allPackages);
|
||||
parser.parsePackageListing(packageListing);
|
||||
}
|
||||
|
@@ -78,6 +78,8 @@ public:
|
||||
void reloadPackages(bool forceReload = false);
|
||||
bool isBusy() const;
|
||||
|
||||
bool packageListingSuccessful() const;
|
||||
|
||||
QFuture<QString> availableArguments() const;
|
||||
QFuture<OperationOutput> updateAll();
|
||||
QFuture<OperationOutput> update(const QStringList &install, const QStringList &uninstall);
|
||||
|
@@ -76,6 +76,7 @@ enum AndroidValidation {
|
||||
SdkToolsInstalledRow,
|
||||
PlatformToolsInstalledRow,
|
||||
BuildToolsInstalledRow,
|
||||
SdkManagerSuccessfulRow,
|
||||
PlatformSdkInstalledRow,
|
||||
NdkPathExistsRow,
|
||||
NdkDirStructureRow,
|
||||
@@ -259,6 +260,8 @@ AndroidSettingsWidget::AndroidSettingsWidget(QWidget *parent)
|
||||
androidValidationPoints[SdkPathWritableRow] = tr("Android SDK path writable.");
|
||||
androidValidationPoints[SdkToolsInstalledRow] = tr("SDK 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[PlatformSdkInstalledRow] = tr("Platform SDK installed.");
|
||||
androidValidationPoints[NdkPathExistsRow] = tr("Android NDK path exists.");
|
||||
@@ -425,12 +428,14 @@ void AndroidSettingsWidget::validateSdk()
|
||||
summaryWidget->setPointValid(BuildToolsInstalledRow,
|
||||
!m_androidConfig.buildToolsVersion().isNull());
|
||||
|
||||
summaryWidget->setPointValid(SdkManagerSuccessfulRow, m_sdkManager->packageListingSuccessful());
|
||||
// installedSdkPlatforms should not trigger a package reload as validate SDK is only called
|
||||
// after AndroidSdkManager::packageReloadFinished.
|
||||
summaryWidget->setPointValid(PlatformSdkInstalledRow,
|
||||
!m_sdkManager->installedSdkPlatforms().isEmpty());
|
||||
updateUI();
|
||||
bool sdkToolsOk = summaryWidget->rowsOk({SdkPathExistsRow, SdkPathWritableRow, SdkToolsInstalledRow});
|
||||
bool sdkToolsOk = summaryWidget->rowsOk(
|
||||
{SdkPathExistsRow, SdkPathWritableRow, SdkToolsInstalledRow, SdkManagerSuccessfulRow});
|
||||
bool componentsOk = summaryWidget->rowsOk({PlatformToolsInstalledRow,
|
||||
BuildToolsInstalledRow,
|
||||
PlatformSdkInstalledRow});
|
||||
|
Reference in New Issue
Block a user