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

Flutter构建APK失败:Kotlin版本不兼容及类重复定义求助

解决Flutter构建APK时的Kotlin版本冲突与类重复定义问题

一、处理Kotlin版本不兼容问题

多个模块使用不同Kotlin版本编译导致元数据版本不匹配,核心是统一项目所有依赖的Kotlin版本:

  • 打开项目根目录下的build.gradle(非android/app子目录下的文件),找到ext.kotlin_version配置项,设置为稳定兼容的版本(如Flutter 3.16+推荐1.9.0):
    buildscript {
        ext.kotlin_version = '1.9.0'
        // 其他配置内容...
    }
    
  • 在android/app/build.gradle中添加强制统一依赖版本的规则,避免第三方插件引入旧版Kotlin:
    configurations.all {
        resolutionStrategy {
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0"
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0"
            force "org.jetbrains.kotlin:kotlin-reflect:1.9.0"
        }
    }
    
  • 执行flutter clean清理缓存后,尝试重新构建。

二、解决com.google.zxing类重复定义问题

该问题源于多个依赖包同时引入zxing的相同类,导致R8混淆任务失败:

  1. 定位重复依赖:执行flutter pub deps查看完整依赖树,找出包含zxing相关库的第三方插件。
  2. 排除重复依赖:
    • 若为Flutter插件引发的冲突,在pubspec.yaml中对冲突插件添加排除规则,示例:
      dependencies:
        barcode_scan:
          version: ^4.2.0
          exclude:
            - com.google.zxing:core
            - com.google.zxing:android-integration
      
    • 若为Android本地依赖冲突,在android/app/build.gradle中排除重复模块:
      dependencies {
          implementation(project(':app')) {
              exclude group: 'com.google.zxing', module: 'core'
              exclude group: 'com.google.zxing', module: 'android-integration'
          }
      }
      
  3. 调整R8混淆规则:若排除后仍有问题,在android/app/proguard-rules.pro中添加规则忽略冲突:
    -dontwarn com.google.zxing.client.android.camera.open.OpenCameraInterface
    -keep class com.google.zxing.client.android.camera.open.OpenCameraInterface { *; }
    
  4. 再次执行flutter clean && flutter build apk --release验证效果。

额外建议

  • 升级Flutter到最新稳定版:执行flutter upgrade,新版Flutter对Kotlin和依赖的兼容性更好。
  • 检查所有第三方插件版本,尽量使用最新版,多数插件已修复版本冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 22:42:49