2015-11-19 46 views
3

我想在我的应用程序中使用guava图书馆。但我也在使用github的chromium_webview项目。这个webview项目包含番石榴库。番石榴图书馆重复录入错误

而且我得到以下错误:

Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'. java.util.zip.ZipException: duplicate entry: com/google/common/annotations/GwtIncompatible.class

我已经看了thisthis答案已经和似乎没有任何工作。

这里是我的模块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" 
} 

我可以不再使用相同的库?
有没有一种方法可以为这两个模块使用相同的库?

// =======================编辑:

像@皮蒂的评论中提到的,我试着删除刚刚从番石榴库我模块和我的模块不读取另一个模块中的库。

compile 'com.google.guava:guava:18.0' 

这是我尝试删除的行。

任何想法将非常感激。
谢谢!

+0

不能删除'compile'c​​om.google.guava:guava:18.0''?因为它已经是chromium_webview依赖项的一部分了? – petey

+0

我试过了。当我构建它时,我的模块(应用程序)找不到库 –

+0

您碰巧解决了这个问题吗?我有同样的确切问题 –

回答

0

我其实确实解决了这个问题,忘了发贴吧。

所以这里的问题是我在我的项目中使用maven/gradle依赖项,但chromium_webview库使用实际的JAR文件作为库。

我修改了库以使用maven/gradle依赖。 Android Studio和Gradle为我完成了所有的工作,并排除了必要的类。

所以确保他们(库和你的模块)使用相同的方法。
compile 'com.google.guava:guava:18.0'

我真的希望这可以帮助别人。
谢谢。