解决 Flutter 插件在 Android Studio 中的 Gradle 版本冲突
问题现象
在 Android Studio 中打开 Flutter 插件的 Android 目录时,遇到以下错误:
Build file '~/libpag/flutter-ext/android/build.gradle' line: 23
A problem occurred evaluating root project 'libpag_flutter'.
> 'org.gradle.api.artifacts.Dependency org.gradle.api.artifacts.dsl.DependencyHandler.module(java.lang.Object)'
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/9.0-milestone-1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
问题原因
这是典型的 Gradle 版本与 Android Gradle Plugin (AGP) 版本不兼容问题。
在 Android 项目中,有两个关键版本需要匹配:
Gradle 版本:构建工具本身(如 7.5, 8.0, 9.0)
- 定义在
gradle/wrapper/gradle-wrapper.properties
- 定义在
AGP 版本:Android 专用插件
- 定义在
build.gradle的classpath 'com.android.tools.build:gradle:x.x.x'
- 定义在
版本兼容关系:
| Gradle 版本 | AGP 版本 |
|---|---|
| 7.4 - 7.6 | 7.3.0 - 7.4.2 |
| 8.0 - 8.3 | 8.0.0 - 8.1.4 |
| 8.4+ | 8.2.0+ |
Flutter 插件的特殊性
Flutter 插件项目通常没有 gradle-wrapper.properties 文件,因为它依赖宿主应用的 Gradle 配置。
但在 Android Studio 中直接打开插件的 android 目录时,IDE 会将其视为独立项目,使用默认 Gradle 版本(可能是 9.0),导致与旧版 AGP 冲突。
解决方案
方案一:创建 gradle-wrapper.properties(推荐)
在 android/gradle/wrapper/ 目录下创建 gradle-wrapper.properties:
| |
方案二:升级 AGP 版本
修改 android/build.gradle:
| |
方案三:在 Android Studio 中配置
- 打开 File → Settings → Build Tools → Gradle
- 选择 Use Gradle from: ‘specified location’
- 指定或下载 Gradle 7.5
建议
对于 Flutter 插件开发,推荐方案一,改动最小且不影响插件在实际 Flutter 项目中的使用。
执行任一方案后,点击 Android Studio 的 Sync Now 重新同步项目即可。