我正在尝试在我的应用程序中使用guava库。但我也在使用github的chromium_webview项目。这个webview项目包含番石榴库。
我收到以下错误:
错误:任务执行失败 ':应用程序:packageAllDebugClassesForMultiDex'。 java.util.zip.ZipException: 重复条目:com / google / common / annotations / GwtIncompatible.class
这是我的模块build.gradle
:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "my.package.name"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
dexOptions {
incremental true
javaMaxHeapSize "2048M"
jumboMode = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile files('libs/svgAndroid2-3Jan2014.jar')
compile project(':chromium_webview')
compile 'com.android.support:multidex:1.0.1'
compile 'com.google.guava:guava:18.0'
}
我在chromium_webview
项目中尝试过这样的排除方法:
compile (project(':chromium_webview')) {
exclude group: 'com.google.guava', module: "guava_javalib.jar"
}
并且像这样:
compile (project(':chromium_webview')) {
exclude module: "guava_javalib.jar"
}
我可以不再使用同一个图书馆了吗? 有没有办法为两个模块使用相同的库?
// =======================编辑:
就像@ petey提到的评论一样,我尝试从我的模块中删除guava库,而我的模块不会在另一个模块中读取库。
compile 'com.google.guava:guava:18.0'
这就是我尝试删除的行。
任何想法都会非常感激。
谢谢!!
答案 0 :(得分:1)
我确实解决了这个问题,忘记发布了。
所以这里的问题是我在我的项目中使用maven / gradle依赖但是chromium_webview
库正在使用实际的JAR文件作为库。
我修改了库以使用maven / gradle依赖项。 Android Studio和Gradle为我完成了所有工作并排除了必要的课程。
因此,请确保它们(库和您的模块)使用相同的方法
compile 'com.google.guava:guava:18.0'
我真的希望这有助于某人 谢谢。