diff --git a/src/plugins/android/androidbuildapkstep.cpp b/src/plugins/android/androidbuildapkstep.cpp
index 0ff998809f7..4064839288a 100644
--- a/src/plugins/android/androidbuildapkstep.cpp
+++ b/src/plugins/android/androidbuildapkstep.cpp
@@ -342,6 +342,16 @@ void AndroidBuildApkStep::setUseGradle(bool b)
}
}
+bool AndroidBuildApkStep::addDebugger() const
+{
+ return m_addDebugger;
+}
+
+void AndroidBuildApkStep::setAddDebugger(bool debug)
+{
+ m_addDebugger = debug;
+}
+
bool AndroidBuildApkStep::verboseOutput() const
{
return m_verbose;
diff --git a/src/plugins/android/androidbuildapkstep.h b/src/plugins/android/androidbuildapkstep.h
index 0d044c0cccc..c6cfb969096 100644
--- a/src/plugins/android/androidbuildapkstep.h
+++ b/src/plugins/android/androidbuildapkstep.h
@@ -73,6 +73,9 @@ public:
bool useGradle() const;
void setUseGradle(bool b);
+ bool addDebugger() const;
+ void setAddDebugger(bool debug);
+
QString buildTargetSdk() const;
void setBuildTargetSdk(const QString &sdk);
@@ -102,6 +105,7 @@ protected:
bool m_useGradle = false;
bool m_openPackageLocation = false;
bool m_openPackageLocationForRun = false;
+ bool m_addDebugger = true;
QString m_buildTargetSdk;
Utils::FileName m_keystorePath;
diff --git a/src/plugins/android/androidbuildapkwidget.cpp b/src/plugins/android/androidbuildapkwidget.cpp
index 2e85c243fc2..bce4508e054 100644
--- a/src/plugins/android/androidbuildapkwidget.cpp
+++ b/src/plugins/android/androidbuildapkwidget.cpp
@@ -94,6 +94,7 @@ AndroidBuildApkWidget::AndroidBuildApkWidget(AndroidBuildApkStep *step)
m_ui->useGradleCheckBox->setChecked(m_step->useGradle());
m_ui->verboseOutputCheckBox->setChecked(m_step->verboseOutput());
m_ui->openPackageLocationCheckBox->setChecked(m_step->openPackageLocation());
+ m_ui->addDebuggerCheckBox->setChecked(m_step->addDebugger());
// target sdk
connect(m_ui->targetSDKComboBox,
@@ -120,6 +121,8 @@ AndroidBuildApkWidget::AndroidBuildApkWidget(AndroidBuildApkStep *step)
this, &AndroidBuildApkWidget::openPackageLocationCheckBoxToggled);
connect(m_ui->verboseOutputCheckBox, &QAbstractButton::toggled,
this, &AndroidBuildApkWidget::verboseOutputCheckBoxToggled);
+ connect(m_ui->addDebuggerCheckBox, &QAbstractButton::toggled,
+ m_step, &AndroidBuildApkStep::setAddDebugger);
//signing
connect(m_ui->signPackageCheckBox, &QAbstractButton::toggled,
@@ -185,6 +188,7 @@ void AndroidBuildApkWidget::signPackageCheckBoxToggled(bool checked)
{
m_ui->certificatesAliasComboBox->setEnabled(checked);
m_step->setSignPackage(checked);
+ m_ui->addDebuggerCheckBox->setChecked(!checked);
updateSigningWarning();
if (!checked)
return;
diff --git a/src/plugins/android/androidbuildapkwidget.ui b/src/plugins/android/androidbuildapkwidget.ui
index e5565873af3..d74066ce64a 100644
--- a/src/plugins/android/androidbuildapkwidget.ui
+++ b/src/plugins/android/androidbuildapkwidget.ui
@@ -7,7 +7,7 @@
0
0
819
- 390
+ 478
@@ -197,6 +197,19 @@ Deploying local Qt libraries is incompatible with Android 5.
+ -
+
+
+ false
+
+
+ Packages debug server with the APK to enable debugging. For the signed APK this option is unchecked by default.
+
+
+ Add debug server
+
+
+
@@ -254,5 +267,22 @@ The APK will not be usable on any other device.
-
+
+
+ signPackageCheckBox
+ clicked(bool)
+ addDebuggerCheckBox
+ setEnabled(bool)
+
+
+ 113
+ 178
+
+
+ 510
+ 452
+
+
+
+
diff --git a/src/plugins/qmakeandroidsupport/qmakeandroidbuildapkstep.cpp b/src/plugins/qmakeandroidsupport/qmakeandroidbuildapkstep.cpp
index c336329c9c7..ce087ff9df2 100644
--- a/src/plugins/qmakeandroidsupport/qmakeandroidbuildapkstep.cpp
+++ b/src/plugins/qmakeandroidsupport/qmakeandroidbuildapkstep.cpp
@@ -182,13 +182,6 @@ bool QmakeAndroidBuildApkStep::init(QList &earlierSteps)
QStringList argumentsPasswordConcealed = arguments;
- if (version->qtVersion() >= QtSupport::QtVersionNumber(5, 6, 0)) {
- if (bc->buildType() == ProjectExplorer::BuildConfiguration::Debug)
- arguments << QLatin1String("--gdbserver");
- else
- arguments << QLatin1String("--no-gdbserver");
- }
-
if (m_signPackage) {
arguments << QLatin1String("--sign")
<< m_keystorePath.toString()
@@ -206,6 +199,15 @@ bool QmakeAndroidBuildApkStep::init(QList &earlierSteps)
}
+ // Must be the last option, otherwise androiddeployqt might use the other
+ // params (e.g. --sign) to choose not to add gdbserver
+ if (version->qtVersion() >= QtSupport::QtVersionNumber(5, 6, 0)) {
+ if (m_addDebugger || bc->buildType() == ProjectExplorer::BuildConfiguration::Debug)
+ arguments << QLatin1String("--gdbserver");
+ else
+ arguments << QLatin1String("--no-gdbserver");
+ }
+
ProjectExplorer::ProcessParameters *pp = processParameters();
setupProcessParameters(pp, bc, arguments, command);