aboutsummaryrefslogtreecommitdiffstats
path: root/eclipse/plugins
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2014-02-20 20:34:09 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-02-20 20:34:09 +0000
commit05ba8b400c5e147d15b571b83f59690f4a4fc506 (patch)
tree491c97747cd8a4f340dd7cb1441454f9a059c75a /eclipse/plugins
parent136ca3f926b9a446e47875793f7d928578efdb84 (diff)
parent8002bb7712ae50da779c2e10668f60dd8efd768f (diff)
downloadsdk-05ba8b400c5e147d15b571b83f59690f4a4fc506.zip
sdk-05ba8b400c5e147d15b571b83f59690f4a4fc506.tar.gz
sdk-05ba8b400c5e147d15b571b83f59690f4a4fc506.tar.bz2
Merge "Check that build tools are 19.x or later for KitKat language features" into idea133
Diffstat (limited to 'eclipse/plugins')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ResourceManagerBuilder.java15
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/ProjectHelper.java23
2 files changed, 34 insertions, 4 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ResourceManagerBuilder.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ResourceManagerBuilder.java
index c850a2a..8e01cca 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ResourceManagerBuilder.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ResourceManagerBuilder.java
@@ -24,7 +24,9 @@ import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs;
import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs.BuildVerbosity;
import com.android.ide.eclipse.adt.internal.project.BaseProjectHelper;
import com.android.ide.eclipse.adt.internal.project.ProjectHelper;
+import com.android.ide.eclipse.adt.internal.sdk.ProjectState;
import com.android.ide.eclipse.adt.internal.sdk.Sdk;
+import com.android.sdklib.BuildToolInfo;
import com.android.sdklib.IAndroidTarget;
import com.android.utils.Pair;
@@ -123,6 +125,19 @@ public class ResourceManagerBuilder extends BaseBuilder {
errorMessage = "Using 1.7 requires compiling with Android 4.4 " +
"(KitKat); currently using " + target.getVersion();
}
+
+ ProjectState projectState = Sdk.getProjectState(project);
+ if (projectState != null) {
+ BuildToolInfo buildToolInfo = projectState.getBuildToolInfo();
+ if (buildToolInfo == null) {
+ buildToolInfo = currentSdk.getLatestBuildTool();
+ }
+ if (buildToolInfo != null && buildToolInfo.getRevision().getMajor() < 19) {
+ errorMessage = "Using 1.7 requires using Android Build Tools " +
+ "version 19 or later; currently using " +
+ buildToolInfo.getRevision();
+ }
+ }
}
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/ProjectHelper.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/ProjectHelper.java
index 44827a0..a32b4ca 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/ProjectHelper.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/ProjectHelper.java
@@ -28,6 +28,7 @@ import com.android.ide.eclipse.adt.internal.build.builders.PreCompilerBuilder;
import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs;
import com.android.ide.eclipse.adt.internal.sdk.ProjectState;
import com.android.ide.eclipse.adt.internal.sdk.Sdk;
+import com.android.sdklib.BuildToolInfo;
import com.android.sdklib.IAndroidTarget;
import com.android.utils.Pair;
@@ -875,13 +876,27 @@ public final class ProjectHelper {
}
if (JavaCore.VERSION_1_7.equals(optionValue)) {
- // Requires API 19
+ // Requires API 19 and buildTools 19
Sdk currentSdk = Sdk.getCurrent();
if (currentSdk != null) {
- IAndroidTarget target = currentSdk.getTarget(project.getProject());
- if (target != null && target.getVersion().getApiLevel() >= 19) {
- return true;
+ IProject p = project.getProject();
+ IAndroidTarget target = currentSdk.getTarget(p);
+ if (target == null || target.getVersion().getApiLevel() < 19) {
+ return false;
}
+
+ ProjectState projectState = Sdk.getProjectState(p);
+ if (projectState != null) {
+ BuildToolInfo buildToolInfo = projectState.getBuildToolInfo();
+ if (buildToolInfo == null) {
+ buildToolInfo = currentSdk.getLatestBuildTool();
+ }
+ if (buildToolInfo == null || buildToolInfo.getRevision().getMajor() < 19) {
+ return false;
+ }
+ }
+
+ return true;
}
}