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

Flutter集成geolocator遇Kotlin版本冲突及build.gradle更新疑问

解决Flutter集成geolocator时的Kotlin版本不兼容与类重复问题

1. 确认geolocator所需的Kotlin版本

先明确geolocator包依赖的Kotlin版本——你可以查看pub.dev上该包的说明,或者直接查看本地项目中pubspec.lock里geolocator的依赖信息,找到它要求的Kotlin版本号(比如当前最新版可能要求1.8.x及以上)。

2. 修改项目根目录的build.gradle

Flutter项目的Kotlin版本配置在项目根目录的build.gradle文件中,而非android/app下的文件。如果你的文件里没有相关配置,手动添加或修改:

buildscript {
    // 指定geolocator要求的Kotlin版本
    ext.kotlin_version = '1.8.22' 
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:7.4.2" // 确保gradle版本与Kotlin版本兼容
        // 添加Kotlin Gradle插件依赖,用上面定义的版本变量
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

如果原本已有classpath "org.jetbrains.kotlin:kotlin-gradle-plugin"这一行,直接替换版本号即可。

3. 解决类重复问题

如果修改版本后仍出现checkDebugDuplicateClasses错误,在android/app/build.gradle中添加以下配置:

排除重复的Kotlin模块文件

在android代码块内添加:

android {
    // 其他原有配置...
    packagingOptions {
        exclude 'META-INF/*.kotlin_module'
    }
}

强制统一依赖版本

如果是特定依赖库版本冲突,在dependencies代码块外添加:

configurations.all {
    resolutionStrategy {
        // 替换为与Kotlin版本兼容的依赖版本,比如core-ktx
        force 'androidx.core:core-ktx:1.10.1'
    }
}

具体要强制的依赖版本,根据错误提示里的重复类所属库来调整。

4. 清理缓存并重新构建

执行以下命令清理项目缓存,避免旧依赖干扰:

flutter clean
flutter pub get

之后重新运行项目即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 18:50:05