From 3dbb9863419b1efd337a69a3a5e0f300edd8b385 Mon Sep 17 00:00:00 2001 From: Eugene Kudelevsky Date: Wed, 6 Apr 2011 18:41:28 +0400 Subject: [PATCH] EA-26403 fix NPE --- .../android/sdk/AndroidSdkUtils.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java b/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java index a1932b8e0199..a65fbd3f5201 100644 --- a/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java +++ b/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java @@ -162,7 +162,9 @@ public class AndroidSdkUtils { sdkModificator.setHomePath(sdkPath); sdkModificator.commitChanges(); - setUpSdk(sdk, null, table.getAllJdks(), target, addRoots); + + final Sdk javaSdk = tryToChooseJavaSdk(); + setUpSdk(sdk, javaSdk, table.getAllJdks(), target, addRoots); ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override @@ -173,6 +175,16 @@ public class AndroidSdkUtils { return sdk; } + @Nullable + private static Sdk tryToChooseJavaSdk() { + for (Sdk sdk : ProjectJdkTable.getInstance().getAllJdks()) { + if (isApplicableJdk(sdk)) { + return sdk; + } + } + return null; + } + public static String chooseNameForNewLibrary(IAndroidTarget target) { if (target.isPlatform()) { return target.getName() + " Platform"; @@ -190,7 +202,7 @@ public class AndroidSdkUtils { target.getName() + " (" + target.getVersionName() + ')'; } - public static void setUpSdk(Sdk androidSdk, Sdk javaSdk, Sdk[] allSdks, IAndroidTarget target, boolean addRoots) { + public static void setUpSdk(Sdk androidSdk, @Nullable Sdk javaSdk, Sdk[] allSdks, IAndroidTarget target, boolean addRoots) { AndroidSdkAdditionalData data = new AndroidSdkAdditionalData(androidSdk, javaSdk); data.setBuildTarget(target); @@ -201,7 +213,10 @@ public class AndroidSdkUtils { final SdkModificator sdkModificator = androidSdk.getSdkModificator(); sdkModificator.setName(sdkName); - sdkModificator.setVersionString(javaSdk.getVersionString()); + + if (javaSdk != null) { + sdkModificator.setVersionString(javaSdk.getVersionString()); + } sdkModificator.setSdkAdditionalData(data); if (addRoots) {