mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
EA-41264 fix ISE
This commit is contained in:
@@ -15,15 +15,16 @@
|
||||
*/
|
||||
package org.jetbrains.android.facet;
|
||||
|
||||
import com.android.SdkConstants;
|
||||
import com.android.ddmlib.AndroidDebugBridge;
|
||||
import com.android.ddmlib.IDevice;
|
||||
import com.android.prefs.AndroidLocation;
|
||||
import com.android.sdklib.AndroidVersion;
|
||||
import com.android.sdklib.IAndroidTarget;
|
||||
import com.android.SdkConstants;
|
||||
import com.android.sdklib.SdkManager;
|
||||
import com.android.sdklib.internal.avd.AvdInfo;
|
||||
import com.android.sdklib.internal.avd.AvdManager;
|
||||
import com.android.utils.ILogger;
|
||||
import com.intellij.CommonBundle;
|
||||
import com.intellij.ProjectTopics;
|
||||
import com.intellij.execution.ExecutionException;
|
||||
@@ -373,7 +374,7 @@ public class AndroidFacet extends Facet<AndroidFacetConfiguration> {
|
||||
@Nullable
|
||||
public AvdManager getAvdManagerSilently() {
|
||||
try {
|
||||
return getAvdManager();
|
||||
return getAvdManager(new AvdManagerLog());
|
||||
}
|
||||
catch (AvdsNotSupportedException ignored) {
|
||||
}
|
||||
@@ -383,14 +384,14 @@ public class AndroidFacet extends Facet<AndroidFacetConfiguration> {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public AvdManager getAvdManager() throws AvdsNotSupportedException, AndroidLocation.AndroidLocationException {
|
||||
public AvdManager getAvdManager(ILogger log) throws AvdsNotSupportedException, AndroidLocation.AndroidLocationException {
|
||||
if (myAvdManager == null) {
|
||||
AndroidPlatform platform = getConfiguration().getAndroidPlatform();
|
||||
AndroidSdkData sdkData = platform != null ? platform.getSdkData() : null;
|
||||
Project project = getModule().getProject();
|
||||
|
||||
if (sdkData != null) {
|
||||
SdkManager sdkManager = sdkData.getSdkManager();
|
||||
myAvdManager = AvdManager.getInstance(sdkManager, AndroidSdkUtils.getSdkLog(project));
|
||||
myAvdManager = AvdManager.getInstance(sdkManager, log);
|
||||
}
|
||||
else {
|
||||
throw new AvdsNotSupportedException();
|
||||
|
||||
@@ -66,6 +66,7 @@ import org.jetbrains.android.logcat.AndroidLogcatToolWindowFactory;
|
||||
import org.jetbrains.android.logcat.AndroidLogcatView;
|
||||
import org.jetbrains.android.logcat.AndroidLogcatUtil;
|
||||
import org.jetbrains.android.sdk.AndroidSdkUtils;
|
||||
import org.jetbrains.android.sdk.AvdManagerLog;
|
||||
import org.jetbrains.android.util.AndroidBundle;
|
||||
import org.jetbrains.android.util.AndroidOutputReceiver;
|
||||
import org.jetbrains.android.util.AndroidUtils;
|
||||
@@ -389,7 +390,17 @@ public class AndroidRunningState implements RunProfileState, AndroidDebugBridge.
|
||||
final Project project = myFacet.getModule().getProject();
|
||||
AvdManager manager = null;
|
||||
try {
|
||||
manager = myFacet.getAvdManager();
|
||||
manager = myFacet.getAvdManager(new AvdManagerLog() {
|
||||
@Override
|
||||
public void error(Throwable t, String errorFormat, Object... args) {
|
||||
super.error(t, errorFormat, args);
|
||||
|
||||
if (errorFormat != null) {
|
||||
final String msg = String.format(errorFormat, args);
|
||||
message(msg, STDERR);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (AvdsNotSupportedException e) {
|
||||
// can't be
|
||||
|
||||
@@ -17,14 +17,11 @@
|
||||
package org.jetbrains.android.sdk;
|
||||
|
||||
import com.android.SdkConstants;
|
||||
import com.android.annotations.NonNull;
|
||||
import com.android.ddmlib.AndroidDebugBridge;
|
||||
import com.android.ddmlib.Client;
|
||||
import com.android.ddmlib.ClientData;
|
||||
import com.android.ddmlib.IDevice;
|
||||
import com.android.sdklib.IAndroidTarget;
|
||||
import com.android.utils.ILogger;
|
||||
import com.intellij.CommonBundle;
|
||||
import com.intellij.execution.process.OSProcessHandler;
|
||||
import com.intellij.execution.process.OSProcessManager;
|
||||
import com.intellij.facet.ProjectFacetManager;
|
||||
@@ -64,9 +61,7 @@ import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Eugene.Kudelevsky
|
||||
@@ -410,48 +405,6 @@ public class AndroidSdkUtils {
|
||||
ProjectSettingsService.getInstance(module.getProject()).openModuleDependenciesSettings(module, null);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static ILogger getSdkLog(@NotNull final Object o) {
|
||||
if (!(o instanceof Component || o instanceof Project)) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
|
||||
return new ILogger() {
|
||||
public void warning(String warningFormat, Object... args) {
|
||||
if (warningFormat != null) {
|
||||
LOG.warn(String.format(warningFormat, args));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(@NonNull String msgFormat, Object... args) {
|
||||
if (msgFormat != null) {
|
||||
LOG.debug(String.format(msgFormat, args));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void verbose(@NonNull String msgFormat, Object... args) {
|
||||
}
|
||||
|
||||
public void error(Throwable t, String errorFormat, Object... args) {
|
||||
if (t != null) {
|
||||
LOG.info(t);
|
||||
}
|
||||
if (errorFormat != null) {
|
||||
String message = String.format(errorFormat, args);
|
||||
LOG.info(message);
|
||||
if (o instanceof Project) {
|
||||
Messages.showErrorDialog((Project)o, message, CommonBundle.getErrorTitle());
|
||||
}
|
||||
else {
|
||||
Messages.showErrorDialog((Component)o, message, CommonBundle.getErrorTitle());
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static Sdk findAppropriateAndroidPlatform(@NotNull IAndroidTarget target, @NotNull AndroidSdkData sdkData) {
|
||||
for (Sdk library : ProjectJdkTable.getInstance().getAllJdks()) {
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
package org.jetbrains.android.sdk;
|
||||
|
||||
import com.android.annotations.NonNull;
|
||||
import com.android.utils.ILogger;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
|
||||
/**
|
||||
* @author Eugene.Kudelevsky
|
||||
*/
|
||||
public class AvdManagerLog implements ILogger {
|
||||
private static final Logger LOG = Logger.getInstance("#org.jetbrains.android.sdk.AvdManagerLog");
|
||||
|
||||
public void warning(String warningFormat, Object... args) {
|
||||
if (warningFormat != null) {
|
||||
LOG.debug(String.format(warningFormat, args));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(@NonNull String msgFormat, Object... args) {
|
||||
if (msgFormat != null) {
|
||||
LOG.debug(String.format(msgFormat, args));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void verbose(@NonNull String msgFormat, Object... args) {
|
||||
}
|
||||
|
||||
public void error(Throwable t, String errorFormat, Object... args) {
|
||||
if (t != null) {
|
||||
LOG.debug(t);
|
||||
}
|
||||
if (errorFormat != null) {
|
||||
String message = String.format(errorFormat, args);
|
||||
LOG.debug(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user