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

FlutterFragment仍继承v4库,与AndroidX宿主项目兼容问题求助

解决FlutterFragment继承v4而非AndroidX的问题

我来帮你排查这个问题,你已经做了不少正确的配置,但可能有几个容易忽略的点导致FlutterFragment还是生成了v4版本,试试下面这些步骤:

1. 清理Flutter模块缓存并重新生成Android项目文件

自动生成的.android目录可能缓存了旧配置,需要彻底清理后重新生成:

  • 进入Flutter模块根目录
  • 删除.android文件夹
  • 执行命令:
    flutter clean
    flutter pub get
    
  • 重新将Flutter模块关联到宿主项目,同步Gradle

2. 确保宿主项目完全迁移到AndroidX

虽然你已经在gradle.properties中开启了AndroidX和Jetifier,但要确认宿主项目没有残留的v4依赖:

  • 打开Android Studio,执行Refactor > Migrate to AndroidX,让IDE自动扫描并修复所有未迁移的依赖和代码
  • 检查宿主项目的build.gradle文件,确保没有com.android.support开头的依赖,全部替换为对应的AndroidX库(比如androidx.appcompat:appcompat:1.4.1)

3. 手动触发Flutter模块的Android代码重新生成

有时候pubspec.yaml中的androidX: true配置可能没有正确触发模板生成,你可以通过build命令强制重新生成:

  • 在Flutter模块根目录执行:
    flutter build apk
    
    这个命令会重新生成.android目录下的所有文件,包括根据模板生成的FlutterFragment.java

4. 升级Flutter版本到最新稳定版

你当前使用的Flutter版本是1.12.13+hotfix.7,虽然已经支持AndroidX,但这个版本比较旧,可能存在一些已知的兼容性问题:

  • 执行命令升级:
    flutter upgrade
    
  • 升级完成后,重复步骤1的清理和重新生成操作

5. 检查宿主项目的Flutter模块引用路径

确认settings.gradle中的路径是否正确:

evaluate(new File( settingsDir.parentFile, '/flutterlib/.android/include_flutter.groovy' ))

确保/flutterlib是宿主项目根目录到Flutter模块的正确相对路径,避免引用到旧的、未配置AndroidX的Flutter模块副本

最后,完成以上步骤后,执行宿主项目的Clean Project和Rebuild Project操作,确保所有缓存都被清除,新的配置生效。

内容的提问来源于stack exchange,提问作者Skywalker30

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 14:53:11