我正在尝试将caldav4j库(caldav4j-0.7.jar)导入我的android studio项目中。我的build.gradle文件中包含以下两行。

compile 'org.mnode.ical4j:ical4j:1.0.6'
compile files('libs/caldav4j-0.7.jar')

由于ical4j库,我看到多个dex文件定义了错误,因为caldav4j-0.7.jar也将ical4j库定义为maven依赖项。
<dependency>
  <groupId>net.fortuna.ical4j</groupId>
  <artifactId>ical4j</artifactId>
  <!--version>1.0-rc1-SNAPSHOT</version--><!-- patched on localhost-->
  <version>1.0</version>
</dependency>

如果我尝试通过删除第一行不分别导入ical4j,
compile 'org.mnode.ical4j:ical4j:1.0.6'

那么我根本就无法访问ical4j软件包。.我想要实现的是能够从ical4j软件包中导入任何类。 Maven项目不公开其依赖项的包是否正常?那我应该如何在项目中使用 ical4j ?如果我从build.gradle中删除该行,则ical4j库的所有导入语句都会失败。
import net.fortuna.ical4j.model.Component;
import net.fortuna.ical4j.model.ComponentList;
import net.fortuna.ical4j.model.component.VEvent;

简而言之:

我想导入 ical4j 库,但是,
  • 如果我由于与caldav4j.jar中定义的内部依赖项冲突而单独向build.gradle添加一行,则会给我多个dext_strong定义错误
  • 如果我删除该行,因为caldav4j.jar不会公开其依赖项,因此我完全无法访问ical4j库。.

  • 谢谢您的帮助:)

    最佳答案

    这应该是一条评论,因为我不确定,但是太长了。如果错误,我将其删除。

    首先,您应该能够使用gradle依赖项导入caldav4j库。

    caldav4j存储库添加到您的build.gradle

    repositories {
        mavenCentral()
        maven { url "https://caldav4j.googlecode.com/svn/maven" }
    }
    

    那你可以用
    compile('org.osaf:caldav4j:0.7') {
            exclude group: 'net.fortuna.ical4j', module: 'ical4j'
        }
    

    但是我不确定它是否可以工作,因为我不知道1.0.6是否与pom file中的1.0完全兼容:
    <dependency>
          <groupId>net.fortuna.ical4j</groupId>
          <artifactId>ical4j</artifactId>
          <!--version>1.0-rc1-SNAPSHOT</version--><!-- patched on localhost-->
          <version>1.0</version>
        </dependency>
    

    07-27 16:51