2015-11-19 40 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'

我真的希望這可以幫助別人。
謝謝。