如何在Android项目中集成GeoTools库?解决依赖找不到问题
解决Android集成GeoTools的依赖解析错误
问题根源
- 原生
org.geotools:geotools是Java后端库,不直接支持Android平台,且未发布到mavenCentral/google仓库,导致依赖找不到。 - 你同时引入了原生GeoTools和Android适配版本
io.oss84.geotools:geotools,存在冲突。
修复步骤
1. 清理冲突依赖
修改app级build.gradle的dependencies块,移除原生GeoTools依赖,保留Android适配版本:
dependencies { implementation 'androidx.core:core-ktx:1.8.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.5.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' // 仅保留Android适配的GeoTools版本 implementation 'io.oss84.geotools:geotools:24.2-oss84-1' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' // 移除冲突的原生GeoTools依赖 }
2. 添加正确的依赖仓库
修改settings.gradle的dependencyResolutionManagement块,将jitpack仓库添加到依赖解析仓库(而非仅插件管理仓库):
pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() // 添加jitpack仓库用于获取Android适配的GeoTools maven { url 'https://jitpack.io' } } } rootProject.name = "GeoToolsAndroid" include ':app'
3. 适配Android编译配置
确保app级build.gradle中设置兼容的Java版本(GeoTools适配版需Java 8+):
android { compileSdk 33 // 或更高版本 defaultConfig { minSdk 21 // 适配版最低支持minSdk 21 targetSdk 33 // ...其他配置 } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } }
验证
同步Gradle项目后,若仍有问题,可尝试:
- 点击
File > Invalidate Caches... > Invalidate and Restart清除缓存 - 确认jitpack仓库访问正常
内容的提问来源于stack exchange,提问作者user17795444
相关产品推荐
相关产品推荐

