summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/android/androiddeployqtstep.cpp18
-rw-r--r--src/plugins/android/androiddeployqtstep.h2
-rw-r--r--src/plugins/android/androidmanager.cpp9
-rw-r--r--src/plugins/android/androidmanager.h1
4 files changed, 22 insertions, 8 deletions
diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp
index 73a093c20f..a6b38e20b6 100644
--- a/src/plugins/android/androiddeployqtstep.cpp
+++ b/src/plugins/android/androiddeployqtstep.cpp
@@ -200,11 +200,7 @@ bool AndroidDeployQtStep::init()
m_uninstallPreviousPackageRun = m_uninstallPreviousPackage || m_uninstallPreviousPackageTemp;
m_uninstallPreviousPackageTemp = false;
if (m_uninstallPreviousPackageRun) {
- m_packageName = AndroidManager::packageName(target());
- if (m_packageName.isEmpty()){
- emit addOutput(tr("Cannot find the package name."), ErrorOutput);
- return false;
- }
+ m_manifestName = AndroidManager::manifestPath(target());
}
ProjectExplorer::ProcessParameters *pp = processParameters();
m_useAndroiddeployqt = version->qtVersion() >= QtSupport::QtVersionNumber(5, 4, 0);
@@ -299,10 +295,18 @@ void AndroidDeployQtStep::run(QFutureInterface<bool> &fi)
pp->setArguments(m_androiddeployqtArgs);
} else {
if (m_uninstallPreviousPackageRun) {
- emit addOutput(tr("Uninstall previous package %1.").arg(m_packageName), MessageOutput);
+ const QString packageName = AndroidManager::packageName(m_manifestName);
+ if (packageName.isEmpty()){
+ emit addOutput(tr("Cannot find the package name."), ErrorOutput);
+ fi.reportResult(false);
+ emit finished();
+ return;
+ }
+
+ emit addOutput(tr("Uninstall previous package %1.").arg(packageName), MessageOutput);
runCommand(AndroidConfigurations::currentConfig().adbToolPath().toString(),
AndroidDeviceInfo::adbSelector(m_serialNumber)
- << QLatin1String("uninstall") << m_packageName);
+ << QLatin1String("uninstall") << packageName);
}
QString args;
diff --git a/src/plugins/android/androiddeployqtstep.h b/src/plugins/android/androiddeployqtstep.h
index 8a1f2ebc20..b9e9461251 100644
--- a/src/plugins/android/androiddeployqtstep.h
+++ b/src/plugins/android/androiddeployqtstep.h
@@ -103,7 +103,7 @@ private:
void stdError(const QString &line);
virtual bool processSucceeded(int exitCode, QProcess::ExitStatus status);
- QString m_packageName;
+ Utils::FileName m_manifestName;
QString m_serialNumber;
QString m_buildDirectory;
QString m_avdName;
diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp
index 5c2881652b..84f1b612f5 100644
--- a/src/plugins/android/androidmanager.cpp
+++ b/src/plugins/android/androidmanager.cpp
@@ -123,6 +123,15 @@ QString AndroidManager::packageName(ProjectExplorer::Target *target)
return manifestElem.attribute(QLatin1String("package"));
}
+QString AndroidManager::packageName(const Utils::FileName &manifestFile)
+{
+ QDomDocument doc;
+ if (!openXmlFile(doc, manifestFile))
+ return QString();
+ QDomElement manifestElem = doc.documentElement();
+ return manifestElem.attribute(QLatin1String("package"));
+}
+
QString AndroidManager::intentName(ProjectExplorer::Target *target)
{
return packageName(target) + QLatin1Char('/') + activityName(target);
diff --git a/src/plugins/android/androidmanager.h b/src/plugins/android/androidmanager.h
index ed395611bc..a64e36010e 100644
--- a/src/plugins/android/androidmanager.h
+++ b/src/plugins/android/androidmanager.h
@@ -57,6 +57,7 @@ public:
static bool supportsAndroid(const ProjectExplorer::Target *target);
static QString packageName(ProjectExplorer::Target *target);
+ static QString packageName(const Utils::FileName &manifestFile);
static QString intentName(ProjectExplorer::Target *target);
static QString activityName(ProjectExplorer::Target *target);