Flutter开发Gradle版本选择:GradleException无法解析
解决Flutter中「Cannot resolve symbol 'GradleException'」及Gradle版本选择问题
错误原因
Gradle 7.0+开始,GradleException被标记为过时,Gradle 8.0直接移除了这个未限定包名的类引用。如果你的Flutter Android项目代码中使用了未加全限定名的GradleException,在Gradle 8.0环境下就会出现无法解析的错误。
Gradle版本选择建议
你需要根据是否愿意修改代码来决定版本:
1. 选择Gradle 7.5(无需修改代码)
保持gradle-wrapper.properties中的版本为7.5,同时确保android/build.gradle中的Android Gradle Plugin(AGP)版本与Gradle 7.5兼容(推荐AGP 7.4.x)。这种情况下,原来的GradleException虽然会提示过时,但不会出现无法解析的错误,适合不想改动代码的场景。
2. 选择Gradle 8.0(需要修改代码)
如果要使用Gradle 8.0,需完成两步:
- 将项目中所有
GradleException替换为全限定类名org.gradle.api.GradleException; - 升级
android/build.gradle中的AGP版本到8.0+(AGP 8.0与Gradle 8.0匹配)。
核心原则
优先选择与当前Flutter版本匹配的Gradle版本:Flutter的每个稳定版都会推荐对应的AGP和Gradle版本,你可以查看项目android/build.gradle中com.android.tools.build:gradle的版本,再对应选择Gradle版本(比如AGP 7.4对应Gradle 7.5,AGP 8.0对应Gradle 8.0)。
内容的提问来源于stack exchange,提问作者Vicky
相关产品推荐
相关产品推荐

