2015-11-19 4 views
3

Я использую библиотеку guava в моем приложении. Но я также использую проект chromium_webview от github. Этот веб-проект содержит библиотеку guava.Ошибка дубликата библиотеки Guava

И я получаю следующее сообщение об ошибке:

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

Я смотрел на this и this ответы уже и ничего не кажется, работает.

Вот мой модуля 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" 
} 

Могу ли я не использовать ту же библиотеку снова?
Есть ли способ использовать одну и ту же библиотеку для обоих модулей?

// ======================= EDIT:

Как комментарий @ Пить упоминается, я попытался удалить только библиотеку гуавы из моих модуль и мой модуль не читают библиотеку в другом модуле.

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

Это линия, которую я пытался удалить.

Любые идеи будут действительно оценены.
спасибо !!

+0

Невозможно удалить 'compile 'com.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'

Я действительно надеюсь, что это поможет кому-то.
Спасибо.

Смежные вопросы