diff options
Diffstat (limited to 'eclipse/plugins')
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; } } |
