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

Flutter添加location包报错:Kotlin版本不兼容,能否不用该包实现功能?

Flutter添加location包的版本冲突问题及替代方案

问题原因

你的项目根build.gradle中配置的Kotlin版本为1.7.10,但location依赖的kotlin-gradle-plugin版本是1.4.20,低于Android Gradle插件7.3.0要求的最低版本1.5.20,导致构建失败。

解决方法

修改根目录下的build.gradle,强制所有子项目使用统一的Kotlin版本,具体操作如下:

替换原有的subprojects配置块为以下内容:

subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
    // 强制统一Kotlin版本
    project.ext {
        kotlin_version = '1.7.10'
    }
    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
        kotlinOptions {
            jvmTarget = '1.8'
        }
    }
}

subprojects {
    project.evaluationDependsOn(':app')
    // 覆盖子项目的Kotlin插件版本
    afterEvaluate { project ->
        if (project.plugins.hasPlugin('kotlin-android')) {
            project.buildscript.dependencies {
                classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlin_version}"
            }
        }
    }
}

修改完成后,执行以下命令清理缓存并重新构建:

flutter clean
flutter run

不使用location包实现定位的方案

完全可以,有两种主流方式:

  • 使用geolocator插件:这是Flutter生态中更活跃、兼容性更好的定位插件,支持获取当前位置、监听位置更新、权限申请等全功能,版本适配更完善。
  • 原生实现:分别在Android和iOS端编写原生定位逻辑,通过Flutter的MethodChannel实现跨平台通信。Android可使用FusedLocationProviderClient,iOS使用CoreLocation框架,再在Flutter层调用原生方法获取位置数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:05:06