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

Flutter构建APK遇R8重复定义错误:Realm依赖冲突求助

解决Flutter Realm与Android端Kotlin Realm依赖冲突问题

针对你遇到的io.realm.BuildConfig类重复定义导致R8编译失败的问题,提供以下几种可行的解决思路:

1. 精准排除重复依赖

在Android项目的app/build.gradle中,给自定义Android库com.my_realm_generating_library排除掉它依赖的Realm模块,避免和Flutter Realm插件的依赖重复。

首先通过命令查看依赖树,确认重复的Realm模块:

./gradlew app:dependencies

找到com.my_realm_generating_library下依赖的Kotlin Realm相关模块后,在依赖声明中添加排除规则:

implementation("com.my_realm_generating_library") {
    // 根据实际依赖树调整排除的group和module
    exclude group: "io.realm.kotlin", module: "realm-base"
    exclude group: "io.realm.kotlin", module: "realm-library"
}

2. 强制统一Realm依赖版本

如果排除依赖后出现功能缺失,可强制让整个项目使用同一版本的Realm依赖,消除版本差异带来的冲突。

在app/build.gradle的android块外添加配置,指定Flutter Realm所使用的Realm版本(先通过flutter pub deps查看Realm插件对应的Android依赖版本):

configurations.all {
    resolutionStrategy.force "io.realm.kotlin:realm-base:1.10.0" // 替换为实际兼容版本
    resolutionStrategy.force "io.realm.kotlin:realm-library:1.10.0"
}

3. 调整R8混淆规则(不推荐,仅临时应急)

若前两种方法无效,可尝试让R8忽略重复类的警告,但此方法可能引发运行时兼容性问题,需谨慎使用。

在app/proguard-rules.pro中添加:

-dontwarn io.realm.BuildConfig
-keep class io.realm.BuildConfig { *; }

4. 对齐版本兼容性

检查Flutter Realm插件(0.8.0+rc)与Android库依赖的Kotlin Realm版本是否兼容,尽量让两者使用同一大版本的Realm,从根源减少冲突概率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:55:48