Flutter构建APK失败:file_picker插件Gradle配置异常
问题详情
执行构建命令:
flutter build apk --flavor staging
触发报错:
FAILURE: Build failed with an exception.
Where:
Build file '/Users/prashantsingh/.pub-cache/hosted/pub.dev/file_picker-5.3.3/android/build.gradle' line: 24What went wrong:
A problem occurred evaluating project ':file_picker'.No signature of method: build_f3q32pyguxvldsk3l3pwcva1z.android() is applicable for argument types: (build_f3q32pyguxvldsk3l3pwcva1z$_run_closure2) values: [build_f3q32pyguxvldsk3l3pwcva1z$_run_closure2@2c3d05f8]
已尝试flutter clean、flutter pub cache clean命令,问题未解决。
解决方案
1. 升级file_picker依赖版本
file_picker 5.3.3版本存在Gradle语法兼容问题,在项目pubspec.yaml中更新依赖至最新稳定版:
dependencies: file_picker: ^最新稳定版本号
执行命令同步依赖:
flutter pub get
2. 对齐Android Gradle插件与Gradle版本
检查项目根目录下的android/build.gradle,确保Android Gradle插件版本与Gradle版本匹配:
- 插件版本配置:
classpath 'com.android.tools.build:gradle:x.x.x' - Gradle版本配置:在
android/gradle/wrapper/gradle-wrapper.properties中修改distributionUrl=https\://services.gradle.org/distributions/gradle-x.x.x-all.zip
参考官方适配表调整版本,避免因版本不兼容导致语法解析失败。
3. 临时修改file_picker的build.gradle(不推荐长期使用)
找到缓存中的构建文件/Users/prashantsingh/.pub-cache/hosted/pub.dev/file_picker-5.3.3/android/build.gradle,定位第24行的android{}代码块,调整语法至当前Gradle支持的格式:
- 移除过时配置项
- 确保
compileSdkVersion、minSdkVersion与项目配置一致
注:该方案为临时修复,执行flutter pub get后会被覆盖,优先选择升级依赖。
4. 检查Flavor配置合法性
确认android/app/build.gradle中staging flavor的配置无语法错误,避免与依赖库配置冲突:
android { flavorDimensions "default" productFlavors { staging { dimension "default" // 自定义配置 } } }
内容的提问来源于stack exchange,提问作者Dev Prashant

