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

Flutter项目设置minSdkVersion后仍遇geolocator_Android测试清单错误

解决Flutter项目中minSdkVersion与依赖库冲突问题

问题分析

你已在app级build.gradle中设置minSdkVersion 24,但报错仍存在,核心原因是第三方插件geolocator_android的Android测试模块(debugAndroidTest)仍使用minSdkVersion 16,与依赖的androidx.window:1.2.0要求的minSdk 19冲突,导致Manifest合并失败。

解决方案

方案1:统一所有子模块的minSdkVersion

在项目级build.gradle中添加配置,强制所有子模块(包括第三方插件的测试模块)使用与主app一致的minSdkVersion:

subprojects {
    afterEvaluate { project ->
        if (project.hasProperty('android')) {
            android {
                defaultConfig {
                    // 统一设置为24,和你的app保持一致
                    minSdkVersion 24
                }
                // 确保测试模块同步minSdk配置
                if (project.plugins.hasPlugin('com.android.test')) {
                    android {
                        defaultConfig {
                            minSdkVersion 24
                        }
                    }
                }
            }
        }
    }
}

方案2:添加overrideLibrary强制兼容

在app/src/main/AndroidManifest.xml中添加tools:overrideLibrary,强制忽略版本冲突(注意:可能存在运行时风险,仅作为临时验证方案):

  1. 先在manifest标签中引入tools命名空间:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.xxxx.flutter">
  1. 添加或修改<uses-sdk>标签:
<uses-sdk
    android:minSdkVersion="24"
    android:targetSdkVersion="34"
    tools:overrideLibrary="androidx.window"/>

方案3:更新依赖库版本

检查pubspec.yaml中geolocator插件的版本,升级到最新稳定版,新版本可能已修复测试模块的minSdk配置问题:

  1. 修改pubspec.yaml:
dependencies:
  geolocator: ^最新稳定版本号
  1. 执行命令更新依赖:
flutter pub get

验证步骤

  1. 执行清理命令:flutter clean
  2. 重新获取依赖:flutter pub get
  3. 重新构建项目:flutter run

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:35:52