Android项目集成Geotools库构建失败的排查与解决
Android集成GeoTools库构建失败的解决方案
问题背景
开发Android项目时引入GeoTools库后构建失败,相关配置如下:
Gradle构建工具版本
classpath 'com.android.tools.build:gradle:7.0.4'
原仓库配置
repositories { maven { url "https://repo.osgeo.org/repository/release/" } // 原使用的仓库地址 mavenLocal() mavenCentral() google() gradlePluginPortal() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } maven { url "https://oss.sonatype.org/content/repositories/releases/" } maven { url "https://jitpack.io" } }
依赖配置
dependencies { implementation 'org.geotools:gt-main:28.0' // GeoTools核心依赖 testImplementation "junit:junit:$junitVersion" }
构建错误信息
执行构建时触发如下错误:
> Task :android:mergeDebugJavaResource FAILED Execution failed for task ':android:mergeDebugJavaResource'. > A failure occurred while executing com.android.build.gradle.internal.tasks.MergeJavaResWorkAction > 2 files found with path 'plugin.xml' from inputs: - C:\gradle\caches\transforms-3\4ee35d2fa6e19aaa21a107f9d19d12b8\transformed\jetified-org.eclipse.emf.ecore.xmi-2.15.0.jar - C:\gradle\caches\transforms-3\c4ca9df1db430b1e56c1959084f034a1\transformed\jetified-org.eclipse.emf.ecore-2.15.0.jar Adding a packagingOptions block may help, please refer to https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.PackagingOptions.html for more information
曾尝试降级GeoTools版本,未解决问题。
解决方案
通过以下两步操作解决构建失败问题:
修改GeoTools仓库地址
将原仓库地址替换为:https://repo.osgeo.org/repository/geotools-releases/添加packagingOptions配置
在项目的android配置块中添加如下内容,排除冲突的资源文件:
android { packagingOptions { exclude 'AndroidManifest.xml' exclude 'plugin.xml' exclude 'about.ini' exclude 'about.mappings' exclude 'modeling32.png' exclude 'about.properties' exclude 'plugin.properties' } }
内容的提问来源于stack exchange,提问作者mrFloony
相关产品推荐
相关产品推荐

