Could not find method includeBuild() for arguments

问题描述:
Flutter混合开发,在代码未发生任何变化的情况下,重新Flutter本地依赖,报如下错误。

A problem occurred evaluating settings 'AiTeacher'.
> Could not find method includeBuild() for arguments [/Users/yanjunhui/Library/flutter/packages/flutter_tools/gradle] on object of type org.gradle.plugin.management.internal.DefaultPluginManagementSpec.

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
...
Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method includeBuild() for arguments [/Users/yanjunhui/Library/flutter/packages/flutter_tools/gradle] on object of type org.gradle.plugin.management.internal.DefaultPluginManagementSpec.
    at org.gradle.internal.metaobject.AbstractDynamicObject$CustomMissingMethodExecutionFailed.<init>(AbstractDynamicObject.java:190)
    at org.gradle.internal.metaobject.AbstractDynamicObject.methodMissingException(AbstractDynamicObject.java:184)
    at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:86)
    at include_flutter$_run_closure2.doCall(include_flutter.groovy:31)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.util.ClosureBackedAction.execute(ClosureBackedAction.java:71)
    at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:154)
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:105)
    at org.gradle.util.ConfigureUtil$WrappedConfigureAction.execute(ConfigureUtil.java:166)
    at org.gradle.initialization.DefaultSettings.pluginManagement(DefaultSettings.java:319)
    at org.gradle.initialization.DefaultSettings_Decorated.pluginManagement(Unknown Source)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:484)
    at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:196)
    at org.gradle.internal.metaobject.CompositeDynamicObject.tryInvokeMethod(CompositeDynamicObject.java:98)
    at org.gradle.internal.extensibility.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:34)
    at org.gradle.groovy.scripts.BasicScript$ScriptDynamicObject.tryInvokeMethod(BasicScript.java:134)
    at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:163)
    at org.gradle.groovy.scripts.BasicScript.invokeMethod(BasicScript.java:83)
    at include_flutter.run(include_flutter.groovy:30)
    at settings_2oj8v4nfyj4xpg1mfule98gaa.run(/Users/yanjunhui/android/AiTeacher/AiTeacher/settings.gradle:14)
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91)
    ... 120 more

我就很费解了,以前明显依赖的好好的啊。看日志是Gralde报错了,那肯定又是Gradle作妖了。
显示Google、deepSeek一顿搜,根本没有正确的解决方案,连原因都没有。

后来我无意间发现了flutter项目中编译出来的flutterProject/.android/gradle 版本是不同的

flutter3.10.3下的是


image.png

flutter3.29.3下的是


image.png

也就是说,flutter版本升级,导致gradle版本也升级了。如果你源生Android项目不是8.0+的话,就会报这个错,真的是坑爹。但是AGP升级8.0+成本又很高,一时解决不掉怎么办?

退回去呗,还能怎么办。我试过了,直接替换gralde/wrapper也是行不通的。

Flutter 3.10.0(2023年5月发布)

首次支持 AGP 8.0,但默认仍使用 AGP 7.3.x(需手动升级)。

兼容 Android Studio Giraffe(2023.2+)和 JDK 17。

Flutter 3.13.0+(2023年9月后)

默认启用 AGP 8.0,新项目自动生成 AGP 8.0 配置。

要求 Android Gradle 8.0+ 和 Gradle 8.2+。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容