安装mobile_scanner后出现Kotlin类重复问题求助
Kotlin依赖冲突导致Flutter项目构建失败的解决方法
问题描述
这是我开发的第一个Flutter/Android应用,安装二维码扫描库后项目直接崩溃(即便未实际导入)。最初报错指向compileSdkVersion和minSdkVersion,按照提示将其分别硬编码为34和21后,构建时出现大量Kotlin类重复的错误。两天前项目还能正常运行,但现在原有项目及新建空项目仅导入该库都会触发问题,推测是库的最新更新引发了依赖冲突。已尝试flutter pub upgrade --major-versions、./gradlew clean、更新Flutter等操作,均无效果。
核心错误日志片段:
Execution failed for task ':app:checkDebugDuplicateClasses'. > Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules jetified-kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and jetified-kotlin-stdlib-jdk8-1.7.10 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10) ...(其余重复类错误)
解决步骤
1. 统一项目Kotlin版本
打开项目根目录下的android/build.gradle文件,将ext.kotlin_version修改为错误日志中出现的较高版本(如1.8.22),确保Gradle插件使用对应版本:
buildscript { ext.kotlin_version = '1.8.22' repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:7.4.2" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
2. 强制Gradle统一Kotlin依赖
在android/app/build.gradle的android代码块内添加依赖强制策略,确保所有模块使用同一版本的Kotlin标准库:
android { // 原有配置项... configurations.all { resolutionStrategy { force 'org.jetbrains.kotlin:kotlin-stdlib:1.8.22' force 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22' force 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22' } } }
3. 彻底清理并重新构建
执行以下命令清理缓存、重新拉取依赖并构建项目:
flutter clean rm -rf android/.gradle flutter pub get ./gradlew assembleDebug
4. 降级二维码扫描库版本
若以上方法无效,尝试使用该库的旧稳定版本。修改pubspec.yaml中的依赖配置:
dependencies: mobile_scanner: ^3.2.0 # 替换为之前能正常运行的版本号
修改后执行flutter pub get重新拉取依赖。
内容的提问来源于stack exchange,提问作者arcadeperfect
相关产品推荐
相关产品推荐

