Flutter集成Geolocator库时Android构建失败求助
解决Flutter Geolocator构建失败问题
针对你遇到的geolocator_android模块构建错误(无法获取flutter属性、compileSdk未指定),按以下步骤排查修复:
1. 清理本地缓存
首先清理Flutter和Gradle的旧缓存,避免依赖冲突:
flutter clean flutter pub get
同时手动删除项目根目录下的.gradle文件夹,以及android/.gradle文件夹,彻底清除Gradle缓存。
2. 同步Gradle插件版本
你的settings.gradle中Gradle插件版本与Flutter SDK可能不匹配,导致子模块无法识别Flutter扩展。修改settings.gradle中的插件版本:
plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "8.4.0" apply false id "org.jetbrains.kotlin.android" version "1.9.20" apply false }
(版本号可根据你当前Flutter版本调整,运行flutter --version查看Flutter版本,确保插件版本兼容)
3. 添加全局Gradle配置
在项目的android/build.gradle(注意是项目根目录下的android文件夹中的build.gradle,不是app模块的)添加全局配置,强制所有子模块使用统一的compileSdk版本:
buildscript { ext { compileSdkVersion = 35 minSdkVersion = 21 targetSdkVersion = 35 } repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:8.4.0" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.20" } } allprojects { repositories { google() mavenCentral() } }
4. 调整Geolocator版本适配Flutter SDK
你当前使用的Flutter SDK是3.5.4,Geolocator 13.0.3对Flutter版本要求较高,降级到兼容版本:
修改pubspec.yaml中的依赖:
dependencies: flutter: sdk: flutter http: ^0.13.3 fluttertoast: ^8.2.0 shared_preferences: ^2.2.3 image_picker: ^1.1.2 image: ^4.0.15 go_router: ^14.2.6 google_maps_flutter: ^2.10.0 geolocator: ^12.0.0 permission_handler: ^10.2.0
修改后重新运行flutter pub get。
5. 验证配置正确性
确认AndroidManifest.xml中的flutterEmbedding属性值为2,这个配置是正确的,无需修改。
完成以上步骤后,重新运行flutter run,构建错误应该可以解决。
内容的提问来源于stack exchange,提问作者Dzy
相关产品推荐
相关产品推荐

