forked from qt-creator/qt-creator
Android: Use ipv4 host to connect to app in android
IPv6 enabled systems can have IPv4 and an IPv6 entry for localhost and macos seems to prefer IPv6 for localhost and IPv6 is not supported by adbd Task-number: QTCREATORBUG-20730 Change-Id: Ia0823fa04581afc6297e5e8d57a8034ba1b5749c Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
@@ -44,6 +44,7 @@
|
|||||||
#include <utils/hostosinfo.h>
|
#include <utils/hostosinfo.h>
|
||||||
|
|
||||||
#include <QDirIterator>
|
#include <QDirIterator>
|
||||||
|
#include <QHostAddress>
|
||||||
|
|
||||||
using namespace Debugger;
|
using namespace Debugger;
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
@@ -131,7 +132,10 @@ void AndroidDebugSupport::start()
|
|||||||
+ "/app_process");
|
+ "/app_process");
|
||||||
setSkipExecutableValidation(true);
|
setSkipExecutableValidation(true);
|
||||||
setUseExtendedRemote(true);
|
setUseExtendedRemote(true);
|
||||||
setRemoteChannel(":" + m_runner->gdbServerPort().toString());
|
QUrl gdbServer;
|
||||||
|
gdbServer.setHost(QHostAddress(QHostAddress::LocalHost).toString());
|
||||||
|
gdbServer.setPort(m_runner->gdbServerPort().number());
|
||||||
|
setRemoteChannel(gdbServer);
|
||||||
setSysRoot(AndroidConfigurations::currentConfig().ndkLocation().appendPath("platforms")
|
setSysRoot(AndroidConfigurations::currentConfig().ndkLocation().appendPath("platforms")
|
||||||
.appendPath(QString("android-%1").arg(AndroidManager::minimumSDK(target)))
|
.appendPath(QString("android-%1").arg(AndroidManager::minimumSDK(target)))
|
||||||
.appendPath(toNdkArch(AndroidManager::targetArch(target))).toString());
|
.appendPath(toNdkArch(AndroidManager::targetArch(target))).toString());
|
||||||
|
@@ -34,6 +34,7 @@
|
|||||||
#include "androidavdmanager.h"
|
#include "androidavdmanager.h"
|
||||||
#include "androidrunnerworker.h"
|
#include "androidrunnerworker.h"
|
||||||
|
|
||||||
|
#include <QHostAddress>
|
||||||
#include <coreplugin/messagemanager.h>
|
#include <coreplugin/messagemanager.h>
|
||||||
#include <projectexplorer/projectexplorer.h>
|
#include <projectexplorer/projectexplorer.h>
|
||||||
#include <projectexplorer/projectexplorersettings.h>
|
#include <projectexplorer/projectexplorersettings.h>
|
||||||
@@ -197,6 +198,7 @@ void AndroidRunner::qmlServerPortReady(Port port)
|
|||||||
// device side. It only happens to work since we redirect
|
// device side. It only happens to work since we redirect
|
||||||
// host port n to target port n via adb.
|
// host port n to target port n via adb.
|
||||||
QUrl serverUrl;
|
QUrl serverUrl;
|
||||||
|
serverUrl.setHost(QHostAddress(QHostAddress::LocalHost).toString());
|
||||||
serverUrl.setPort(port.number());
|
serverUrl.setPort(port.number());
|
||||||
serverUrl.setScheme(urlTcpScheme());
|
serverUrl.setScheme(urlTcpScheme());
|
||||||
emit qmlServerReady(serverUrl);
|
emit qmlServerReady(serverUrl);
|
||||||
|
@@ -166,8 +166,7 @@ AndroidRunnerWorker::AndroidRunnerWorker(RunWorker *runner, const QString &packa
|
|||||||
QTC_CHECK(m_localGdbServerPort.isValid());
|
QTC_CHECK(m_localGdbServerPort.isValid());
|
||||||
if (m_qmlDebugServices != QmlDebug::NoQmlDebugServices) {
|
if (m_qmlDebugServices != QmlDebug::NoQmlDebugServices) {
|
||||||
QTcpServer server;
|
QTcpServer server;
|
||||||
QTC_ASSERT(server.listen(QHostAddress::LocalHost)
|
QTC_ASSERT(server.listen(QHostAddress::LocalHost),
|
||||||
|| server.listen(QHostAddress::LocalHostIPv6),
|
|
||||||
qDebug() << tr("No free ports available on host for QML debugging."));
|
qDebug() << tr("No free ports available on host for QML debugging."));
|
||||||
m_qmlServer.setScheme(Utils::urlTcpScheme());
|
m_qmlServer.setScheme(Utils::urlTcpScheme());
|
||||||
m_qmlServer.setHost(server.serverAddress().toString());
|
m_qmlServer.setHost(server.serverAddress().toString());
|
||||||
|
Reference in New Issue
Block a user