Skip to content

fix(android): 确保生成的 Kotlin 配置参与编译 - #777

Merged
JarvanMo merged 1 commit into
OpenFlutter:mainfrom
naivetoby:master
Oct 8, 2026
Merged

JarvanMo merged 1 commit into
OpenFlutter:mainfrom
naivetoby:master

Conversation

@naivetoby

Copy link
Copy Markdown
Contributor

问题

当宿主 Flutter 项目启用 AGP 9 的 Built-in Kotlin:

android.builtInKotlin=true

使用 fluwx_no_pay 构建 Android APK 时,Kotlin 编译失败:

Unresolved reference 'FluwxConfigurations'

FluwxConfigurations.kt 是根据宿主项目 pubspec.yaml 自动生成的配置文件。

原因

插件原本通过 Android sourceSets.main.java.srcDirs 注册生成目录:

build/generated/src/kotlin

在 Kotlin Gradle Plugin 模式下,该目录会被 Kotlin 编译任务间接识别。

启用 AGP Built-in Kotlin 后,Kotlin 编译任务不会自动继承这部分 Android Java source set 配置,因此生成文件虽然已经创建,但没有参与 Kotlin 编译。

修改内容

  • 保存 generateFluwxHelperFile 任务引用。
  • 将所有 KotlinCompile 任务依赖到配置生成任务。
  • 将 build/generated/src/kotlin 显式加入 Kotlin 编译源码目录。

这样可以确保:

  1. 编译前一定生成 FluwxConfigurations.kt。
  2. 生成的 Kotlin 源码会被 fluwx 和 fluwx_no_pay 正确编译。
  3. 继续兼容 AGP Built-in Kotlin 配置。
  4. 不改变插件对外 API 和运行时行为。

验证

已通过:

./gradlew :fluwx_no_pay:compileReleaseKotlin --offline --console=plain
flutter build apk --target-platform android-arm64

APK 构建成功,FluwxConfigurations 相关编译错误已消失。

@JarvanMo
JarvanMo merged commit 986ea2f into OpenFlutter:main Oct 8, 2026
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants