【发布时间】:2022-12-18 02:51:41
【问题描述】:
我正在开发一个 android 项目,需要使用 Geotools 库。 添加库后构建项目是不正确的。
类路径 'com.android.tools.build:gradle:7.0.4'
将存储库添加到 Gradle:
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" } }向 Gradle 添加依赖项:
dependencies { implementation 'org.geotools:gt-main:28.0' // <--- 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降级库版本没有帮助。 请协助组装,我已经坐了第三晚
更新我会自己回答: 将存储库更改为
https://repo.osgeo.org/repository/geotools-releases/
添加一个块也有帮助:
android { packagingOptions { exclude 'AndroidManifest.xml' exclude 'plugin.xml' exclude 'about.ini' exclude 'about.mappings' exclude 'modeling32.png' exclude 'about.properties' exclude 'plugin.properties' } }可能对某人有用:)
【问题讨论】:
-
附言想为文件 plugin.xml 添加 PackagingOptions,但不明白应该在哪个块中添加它,我不知道它是否有帮助
-
我认为 GeoTools 不适用于 Android。
-
@IanTurton,我尝试通过 JUnit 连接到项目而不在 Gradle 中构建,并且库功能运行良好(也就是说,Gradle 通常会看到库本身,下载并使用它)。问题只出现在mergeDebugJavaResource/mergeJavaResource块中项目本身的组装过程中,目前尚不清楚如何解决
-
附言除了出现的想法不是将存储库添加到一般项目,而是添加到核心(一个不与 android 交互但执行实用功能的内部模块,并且您需要对库执行必要的操作)