Repository navigation
Commit 986ea2f
authored
fix(android): 确保生成的 Kotlin 配置参与编译 (#777)
## 问题
当宿主 Flutter 项目启用 AGP 9 的 Built-in Kotlin:
```properties
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` 相关编译错误已消失。1 parent 54da71c commit 986ea2f
1 file changed
Lines changed: 7 additions & 1 deletion
File tree
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
2 | 3 | | |
3 | 4 | | |
4 | 5 | | |
| |||
132 | 133 | | |
133 | 134 | | |
134 | 135 | | |
135 | | - | |
| 136 | + | |
136 | 137 | | |
137 | 138 | | |
138 | 139 | | |
| |||
165 | 166 | | |
166 | 167 | | |
167 | 168 | | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
168 | 174 | | |
169 | 175 | | |
170 | 176 | | |
| |||
0 commit comments