From 6c3feb929da43eb28c5ae10b678b304346faecf4 Mon Sep 17 00:00:00 2001 From: Eugene Kudelevsky Date: Fri, 21 Jan 2011 18:36:38 +0300 Subject: [PATCH] check if ddms is available before launching debug --- .../android/run/AndroidRunConfigurationBase.java | 2 +- .../jetbrains/android/run/AndroidRunningState.java | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/plugins/android/src/org/jetbrains/android/run/AndroidRunConfigurationBase.java b/plugins/android/src/org/jetbrains/android/run/AndroidRunConfigurationBase.java index 9b170dcc89b5..abee0d69e092 100644 --- a/plugins/android/src/org/jetbrains/android/run/AndroidRunConfigurationBase.java +++ b/plugins/android/src/org/jetbrains/android/run/AndroidRunConfigurationBase.java @@ -300,7 +300,7 @@ public abstract class AndroidRunConfigurationBase extends ModuleBasedConfigurati return true; } - private static boolean isDdmsCorrupted(@NotNull AndroidFacet facet) { + static boolean isDdmsCorrupted(@NotNull AndroidFacet facet) { AndroidDebugBridge bridge = facet.getDebugBridge(); if (bridge != null) { IDevice[] devices = bridge.getDevices(); diff --git a/plugins/android/src/org/jetbrains/android/run/AndroidRunningState.java b/plugins/android/src/org/jetbrains/android/run/AndroidRunningState.java index 1bcd5919e033..bde851897022 100644 --- a/plugins/android/src/org/jetbrains/android/run/AndroidRunningState.java +++ b/plugins/android/src/org/jetbrains/android/run/AndroidRunningState.java @@ -574,6 +574,10 @@ public abstract class AndroidRunningState implements RunProfileState, AndroidDeb myApplicationDeployed = true; } if (!myApplicationLauncher.launch(this, device)) return false; + + if (!checkDdms()) { + return false; + } synchronized (myDebugLock) { Client client = device.getClient(myTargetPackageName); if (client != null) { @@ -600,6 +604,15 @@ public abstract class AndroidRunningState implements RunProfileState, AndroidDeb } } + private boolean checkDdms() { + if (myDebugMode && AndroidRunConfigurationBase.isDdmsCorrupted(myFacet)) { + getProcessHandler() + .notifyTextAvailable("Debug info is not available. Please close other application using ADB: DDMS, Eclipse\n", STDERR); + return false; + } + return true; + } + private boolean uploadAndInstallDependentModules(@NotNull IDevice device) throws IOException { for (AndroidFacet depFacet : myAdditionalFacet2PackageName.keySet()) { String packageName = myAdditionalFacet2PackageName.get(depFacet);