Flutter项目添加firebase_ml_vision后Gradle同步失败求助
解决添加firebase_ml_vision后Gradle同步的
packLibsflutterBuildDebug任务创建失败问题 首先聚焦错误核心:
org.codehaus.groovy.runtime.metaclass.MissingMethodExecutionFailed: No signature of method: org.gradle.api.tasks.bundling.Jar.destinationDir() is applicable for argument types: (File) values: [C:\Users\37499\AndroidStudioProjects\flutter_ml_demo\build\app\intermediates\flutter\debug]
这个错误的本质是:高版本Gradle已经移除了destinationDir()方法,替换为destinationDirectory.set(),但firebase_ml_vision旧版本的插件代码仍在调用废弃方法,导致任务创建失败。
试试以下解决方案:
- 迁移到官方推荐的替代库:firebase_ml_vision已被官方弃用,Flutter端建议直接迁移到ML Kit的独立插件(比如
google_mlkit_text_recognition、google_mlkit_image_labeling等),这些插件适配了最新Gradle和AGP版本,从根源上避免兼容性问题。 - 临时修复插件代码(仅应急用):找到项目中firebase_ml_vision插件生成的Gradle任务文件(一般在
.flutter-plugins或build目录下的相关gradle脚本里),将所有destinationDir()替换为destinationDirectory.set(),修改后重新同步Gradle。注意:下次执行flutter pub get会覆盖修改,所以这只是临时方案。 - 严格匹配AGP与Gradle版本:检查
android/build.gradle中的AGP版本(com.android.tools.build:gradle)和gradle/wrapper/gradle-wrapper.properties中的Gradle版本,必须一一对应(比如AGP 7.4对应Gradle 7.5,AGP 8.0对应Gradle 8.0),之前修改版本可能没做到精准匹配。 - 彻底清理缓存重试:执行
flutter clean,删除Android目录下的.gradle文件夹,再依次运行flutter pub get和Gradle同步。
内容的提问来源于stack exchange,提问作者Davit D
相关产品推荐
相关产品推荐

