错误:项目“:app”的SDK Build Tools版本(23.0.3)太低。最低要求为25.0.0。

35
标题重复了,但我的问题不同。
在我同事的系统上,同样的项目可以很好地工作并允许构建,
buildToolsVersion为23.0.3。
据我所知,只有android studio版本不同。
如果我没有将android studio升级到“2.3.Beta 2”,我是否仍然可以使用23.0.3来构建?

发布你的模块级构建文件。 - Saurabh Bhandari
您是否可以那么好心地将我的答案标记为正确答案? - isabsent
@isabsent 是的,我做了,对于延迟我很抱歉。 - Shyamnath Mallinathan
6个回答

97

你需要修改顶级build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
//        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

需要翻译的内容:

to:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
//        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

1
设置com.android.tools.build:gradle:2.2.3也解决了我在编译react-native-mail时遇到的问题。 - brickpop
2.3.0是一个新的Gradle插件,它应该与buildToolsVersion 25或更高版本一起使用。如果您将Gradle插件版本更改为2.2.3,则可以使用旧的buildToolsVersion 23.0.3。 - isabsent
为什么这个答案还没有被标记为正确答案?! - ProllyGeek

5

好的,我找到了解决方案。

对于未来遇到同样问题的人,这是我所做的:

我将以下内容添加到我的根构建 gradle android/build.gradle 中 (不是 android/app/build.gradle)

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 25
                buildToolsVersion '25.0.0'
            }
        }
    }
}

这会强制所有子模块使用指定的compileSdkVersion和buildToolsVersion。问题现在已经解决。


3
如果我没有将 Android Studio 升级到 "2.3.Beta 2",我还能使用 23.0.3 版本构建吗?
是的。
您仍然可以使用任何版本的构建工具从命令行运行构建过程。
随意升级构建工具到 25.0.2(截至2017年1月27日最新版本)。这只影响构建过程,不影响应用程序行为。
较新版本的构建工具包含更多选项和较新的技术,较新版本的 Android Studio 依赖于这些技术。

使用25构建时出现错误 /* java.lang.IllegalStateException: 您需要在此活动中使用Theme.AppCompat主题(或其后代)。 */ 使用23时,我的同事都没有遇到这个错误。 同一项目,同一代码。 这就是我感到困惑的原因。 - Shyamnath Mallinathan
为什么工作室阻止我在23上运行? 这是一个问题。 顺便说一下,下次我想升级我的开发工具,请让我镇静。 - Giorgio Barchiesi
@GiorgioBarchiesi 你用的是哪个版本的AS?23是指哪个版本?在寻求帮助时一定要具体明确。 - Eugen Pechanec
Android Studio 2.3,API 23,构建工具版本为23.0.3(但AS想要25),最小SDK版本16,目标SDK版本23。 - Giorgio Barchiesi
1
顶层build.gradle中将com.android.tools.build:gradle:2.3.0更改回com.android.tools.build:gradle:2.2.3 - isabsent
显示剩余5条评论

0

当我的项目从Android Studio 1.5.0迁移到2.3.0时,设置classpath 'com.android.tools.build:gradle:1.+'可以解决我的问题。


0

可以的

2.3版本的Studio支持最高到25,你需要在Studio中安装SDK 19到25。


2
最多到25,对吧?那我应该能够用23构建。为什么它阻止我在23上运行呢?这就是我想知道的。 - Shyamnath Mallinathan

-1
我解决了这个问题:
android/build.gradle 中添加了这段代码。

```

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 26
                buildToolsVersion '26.0.0'
            }
        }
    }
}

```


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接