问题报错如下:
A problem occurred evaluating project ‘:app’.
Could not find method buildTools() for arguments [30.0.0] on extension ‘android’ of type com.android.build.gradle.internal.dsl.BaseAppModuleExtension.
这个错误表明你在 build.gradle 文件中使用了 buildTools() 方法,但这个方法在当前的 Android Gradle 插件版本中已经不再支持。从 Android Gradle Plugin (AGP) 7.0 开始,buildToolsVersion 已经被弃用,Gradle 会自动选择适合的构建工具版本。
解决方法
- 移除 buildToolsVersion
在模块的 build.gradle 文件中,移除 buildToolsVersion 的配置。例如:
修改前:
android {
buildToolsVersion "30.0.0" // 移除这一行
compileSdk 34
// 其他配置
}
修改后:
android {
compileSdk 34
// 其他配置
}
- 确保使用最新的 Android Gradle 插件
从 AGP 7.0 开始,buildToolsVersion 已经不再需要显式指定。确保你使用的是最新的 Android Gradle 插件版本。
打开项目根目录下的 build.gradle 文件。
检查 Android Gradle 插件版本是否为最新稳定版(例如 8.2.0):
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.2.0' // 使用最新的稳定版本
}
}
同步项目。
- 清理和重建项目
完成上述修改后,清理项目并重新构建:
点击 Build > Clean Project。
点击 Build > Rebuild Project。
- 检查 Gradle 版本
确保你的 Gradle 版本与 Android Gradle 插件版本兼容。以下是兼容性表格:
Android Gradle 插件版本 Gradle 版本
8.0+ 8.0+
7.0+ 7.0+
打开项目根目录下的 gradle-wrapper.properties 文件,确保 distributionUrl 指向兼容的 Gradle 版本。例如:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
- 完整示例
以下是修正后的模块级别 build.gradle 文件示例:
plugins {
id 'com.android.application'
}
android {
namespace 'com.android.jianshen'
compileSdk 34
defaultConfig {
applicationId "com.example.jianshen"
minSdk 28
targetSdk 34
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
}
好的,关于这个问题我们今天就先分享到这里,希望能帮助到屏幕前为代码发愁的您。关注鹿溪IT工作室,后续我们会不定时分享新的bug修改意见,有时候不一定全对,欢迎大家留言批评指正。