Detect adb connection type and debug over Wi-Fi if needed
Avoid using adb reverse if deploying with adb tcpip. This still can fail if the user is attempting to debug over usb and has connected their device over BOTH usb and tcpip. I'm not sure how we would detect that problem in advance though.
This commit is contained in:
parent
1fed266bf5
commit
f3fdfefa09
@ -220,6 +220,7 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
|
||||
String name;
|
||||
String description;
|
||||
int api_level;
|
||||
bool usb;
|
||||
};
|
||||
|
||||
struct APKExportData {
|
||||
@ -246,17 +247,20 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
|
||||
String devices;
|
||||
List<String> args;
|
||||
args.push_back("devices");
|
||||
args.push_back("-l");
|
||||
int ec;
|
||||
OS::get_singleton()->execute(adb, args, true, NULL, &devices, &ec);
|
||||
|
||||
Vector<String> ds = devices.split("\n");
|
||||
Vector<String> ldevices;
|
||||
Vector<bool> ldevices_usbconnection;
|
||||
for (int i = 1; i < ds.size(); i++) {
|
||||
|
||||
String d = ds[i];
|
||||
int dpos = d.find(" device ");
|
||||
if (dpos == -1)
|
||||
continue;
|
||||
ldevices_usbconnection.push_back(d.find(" usb:") != -1);
|
||||
d = d.substr(0, dpos).strip_edges();
|
||||
ldevices.push_back(d);
|
||||
}
|
||||
@ -287,6 +291,7 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
|
||||
|
||||
Device d;
|
||||
d.id = ldevices[i];
|
||||
d.usb = ldevices_usbconnection[i];
|
||||
for (int j = 0; j < ea->devices.size(); j++) {
|
||||
if (ea->devices[j].id == ldevices[i]) {
|
||||
d.description = ea->devices[j].description;
|
||||
@ -1404,7 +1409,9 @@ public:
|
||||
}
|
||||
|
||||
const bool use_remote = (p_debug_flags & DEBUG_FLAG_REMOTE_DEBUG) || (p_debug_flags & DEBUG_FLAG_DUMB_CLIENT);
|
||||
const bool use_reverse = devices[p_device].api_level >= 21;
|
||||
const bool use_reverse = devices[p_device].api_level >= 21 && devices[p_device].usb;
|
||||
// Note: Reverse can still fail if device is connected by both usb and network
|
||||
// Ideally we'd know for sure whether adb reverse would work before we build the APK
|
||||
|
||||
if (use_reverse)
|
||||
p_debug_flags |= DEBUG_FLAG_REMOTE_DEBUG_LOCALHOST;
|
||||
@ -1509,7 +1516,7 @@ public:
|
||||
}
|
||||
} else {
|
||||
|
||||
static const char *const msg = "--- Device API < 21; debugging over Wi-Fi ---";
|
||||
static const char *const msg = "--- Device API < 21 or no USB connection; debugging over Wi-Fi ---";
|
||||
EditorNode::get_singleton()->get_log()->add_message(msg, EditorLog::MSG_TYPE_EDITOR);
|
||||
print_line(String(msg).to_upper());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user