diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/android/androidconfigurations.cpp | 24 | ||||
| -rw-r--r-- | src/plugins/android/androidconfigurations.h | 2 |
2 files changed, 19 insertions, 7 deletions
diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index bcfac538e2..f19c89b855 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -479,11 +479,19 @@ QString AndroidConfig::createAVD(QWidget *parent, int minApiLevel, QString targe avdDialog.nameLineEdit->setValidator(&v); if (d.exec() != QDialog::Accepted) return QString(); - return createAVD(avdDialog.targetComboBox->currentText(), avdDialog.nameLineEdit->text(), - avdDialog.abiComboBox->currentText(), avdDialog.sizeSpinBox->value()); + QString error; + QString avd = createAVD(avdDialog.targetComboBox->currentText(), avdDialog.nameLineEdit->text(), + avdDialog.abiComboBox->currentText(), avdDialog.sizeSpinBox->value(), + &error); + if (!error.isEmpty()) { + QMessageBox::critical(parent, QApplication::translate("AndroidConfig", "Error Creating AVD"), + error); + } + + return avd; } -QString AndroidConfig::createAVD(const QString &target, const QString &name, const QString &abi, int sdcardSize) const +QString AndroidConfig::createAVD(const QString &target, const QString &name, const QString &abi, int sdcardSize, QString *error) const { QProcess proc; proc.setProcessEnvironment(androidToolEnvironment().toProcessEnvironment()); @@ -518,12 +526,16 @@ QString AndroidConfig::createAVD(const QString &target, const QString &name, con break; } - Core::MessageManager::write(QString::fromLocal8Bit(question), Core::MessageManager::Flash); - proc.waitForFinished(); - if (proc.exitCode()) // error! + QString errorOutput = QString::fromLocal8Bit(proc.readAllStandardError()); + // The exit code is always 0, so we need to check stderr + // For now assume that any output at all indicates a error + if (!errorOutput.isEmpty()) { + *error = errorOutput; return QString(); + } + return name; } diff --git a/src/plugins/android/androidconfigurations.h b/src/plugins/android/androidconfigurations.h index 1f2be2a0c4..4578a39a92 100644 --- a/src/plugins/android/androidconfigurations.h +++ b/src/plugins/android/androidconfigurations.h @@ -117,7 +117,7 @@ public: QString createAVD(QWidget *parent, int minApiLevel = 0, QString targetArch = QString()) const; - QString createAVD(const QString &target, const QString &name, const QString &abi, int sdcardSize) const; + QString createAVD(const QString &target, const QString &name, const QString &abi, int sdcardSize, QString *error) const; bool removeAVD(const QString &name) const; QVector<AndroidDeviceInfo> connectedDevices(QString *error = 0) const; |
