summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/android/androidconfigurations.cpp24
-rw-r--r--src/plugins/android/androidconfigurations.h2
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;