我正在尝试将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语句都会失败。
import net.fortuna.ical4j.model.Component;
import net.fortuna.ical4j.model.ComponentList;
import net.fortuna.ical4j.model.component.VEvent;
简而言之:
我想导入 ical4j 库,但
如果因为与caldav4j.jar中定义的内部依赖项冲突而单独向build.gradle添加一行,它会给我多个dex文件定义错误。
< / LI>如果删除该行,我根本无法访问ical4j库,因为caldav4j.jar不会公开其依赖项。
提前感谢您的帮助:)
答案 0 :(得分:1)
这应该是一个评论,因为我不确定,但它太长了。如果错误,我会删除它。
首先,您应该能够使用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>
答案 1 :(得分:1)
看看这个答案,它几乎告诉你如何列出什么是冲突的,
Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat
运行gradle -q dependencies(或gradle -q:projectName:dependencies)以生成依赖关系报告。您应该看到r7的来源,例如:
compile - Classpath for compiling the main sources.
+--- com.commonsware.cwac:camera-v9:0.5.4
| +--- com.actionbarsherlock:actionbarsherlock:4.4.0
| | \--- com.google.android:support-v4:r7
| +--- com.commonsware.cwac:camera:0.5.4
| \--- com.android.support:support-v4:18.0.+ -> 18.0.0
\--- com.android.support:support-v4:18.0.+ -> 18.0.0
然后,使用exclude指令来阻止该依赖项。
dependencies {
compile('com.commonsware.cwac:camera-v9:0.5.4') {
exclude module: 'support-v4'
}
compile 'com.android.support:support-v4:18.0.+'
}
(其中第二个编译语句指示您实际需要的版本)