You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter项目Android模块构建报错:SourceDirectories相关方法问题求助

Flutter项目Android模块构建报错:SourceDirectories相关方法问题求助

兄弟,我之前踩过类似的Gradle API不兼容的坑,结合你已经尝试的操作,给你梳理几个大概率的问题方向:

  • Flutter版本与AGP版本不兼容
    你把Android Gradle Plugin(AGP)升级到了8.2.2,但如果你的Flutter版本比较旧(比如低于3.16稳定版),就会出现API调用不匹配的问题。AGP 8.x对Sources相关的API做了重构,旧版Flutter的Android插件还在调用已经被修改的getByName方法。你可以先执行flutter --version查看当前版本,要么把AGP降级到Flutter官方推荐的对应版本,要么升级Flutter到兼容AGP 8.x的稳定版。

  • 第三方依赖/插件未适配AGP 8.x
    如果你的项目里引入了第三方Android原生SDK、自定义Gradle插件或者其他原生依赖,它们可能还没适配AGP 8.x的新API规范,内部仍在调用废弃的Sources.getByName方法。你可以尝试临时禁用非必要的第三方插件/依赖,逐个排查找出冲突的那个,然后去查看它的更新日志,有没有适配AGP 8.x的版本可用。

  • Gradle配置或缓存的残留冲突
    有时候本地缓存或者配置文件的残留会导致奇怪的兼容性问题,你可以试试这些操作:

    • 删除Android模块目录下的.gradle和build文件夹
    • 执行flutter clean命令清理Flutter缓存,再运行flutter pub get重新拉取依赖
    • 检查android/gradle/wrapper/gradle-wrapper.properties中的Gradle版本,AGP 8.2.x对应的Gradle版本需要是8.3及以上,别搞混了版本对应关系
  • Java/Kotlin版本配置细节遗漏
    虽然你升级到了Java 17,但要确保Android模块的build.gradle里已经正确配置了版本参数,避免隐性的版本冲突:

    android {
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_17
            targetCompatibility JavaVersion.VERSION_17
        }
        kotlinOptions {
            jvmTarget = "17"
        }
    }
    

    另外,要保证项目中所有模块的Kotlin版本统一,别出现部分模块用旧版本、部分用1.9.20的情况。

备注:内容来源于stack exchange,提问作者Mikias Mulugeta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 06:19:38