aboutsummaryrefslogtreecommitdiffstats
path: root/eclipse/plugins
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2014-02-20 12:23:27 -0800
committerTor Norbye <tnorbye@google.com>2014-02-20 12:23:27 -0800
commit8002bb7712ae50da779c2e10668f60dd8efd768f (patch)
treedbc31ff3dc5b6d6f0895dcc72ee3a9335d738426 /eclipse/plugins
parent10ec51f2a6a5cccad02f5251221c965a56a4f364 (diff)
downloadsdk-8002bb7712ae50da779c2e10668f60dd8efd768f.zip
sdk-8002bb7712ae50da779c2e10668f60dd8efd768f.tar.gz
sdk-8002bb7712ae50da779c2e10668f60dd8efd768f.tar.bz2
Check that build tools are 19.x or later for KitKat language features
Change-Id: I6658254c22c866fce93e0ffc0c5a4d694b79e57e
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;
}
}