Flutter项目构建报错:No signature of method: android() 异常
问题详情
构建文件路径:/Users/1726mohitraj/.pub-cache/hosted/pub.dev/audioplayers_android-3.0.1/android/build.gradle 第31行
报错信息:
No signature of method: build_91u1y9cmlwptitkd488tz946b.android() is applicable for argument types: (build_91u1y9cmlwptitkd488tz946b$_run_closure2) values: [build_91u1y9cmlwptitkd488tz946b$_run_closure2@745e6edd]
已尝试操作:注释android{...}代码块内容、Invalidate caches并重启项目,问题未解决。
解决方案
1. 匹配Gradle与Android Gradle Plugin(AGP)版本
audioplayers_android使用的AGP版本为7.3.1,该版本要求Gradle版本至少为7.5。检查项目根目录下gradle/wrapper/gradle-wrapper.properties文件,确保distributionUrl指向兼容的Gradle版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
2. 统一项目的AGP版本
在项目根目录的android/build.gradle文件中,统一配置AGP版本,避免依赖模块版本冲突:
buildscript { ext { androidGradlePluginVersion = '7.3.1' kotlinVersion = '1.7.10' } repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:$androidGradlePluginVersion" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" } }
3. 更新audioplayers插件到最新稳定版
旧版本插件可能存在兼容性问题,执行以下命令更新:
flutter pub upgrade audioplayers
或直接在pubspec.yaml中指定最新版本后执行flutter pub get。
4. 清理缓存并重新获取依赖
- 执行Flutter清理命令:
flutter clean
- 删除本地pub缓存中的audioplayers相关目录:
rm -rf /Users/1726mohitraj/.pub-cache/hosted/pub.dev/audioplayers*
- 重新获取依赖:
flutter pub get
5. 检查项目根目录的Android配置
确保项目根目录的android/build.gradle中没有重复或冲突的插件配置,避免影响子模块构建。
内容的提问来源于stack exchange,提问作者MOHIT RAJ

