2014-11-18 1 views
2

Я пытаюсь решить это исключение. У меня есть 2 проекта Android в intellij. Библиотека и образец.Несколько файлов dex определяют Lcom/google/inject/Module

DEPS библиотеки является следующим:

compile('com.inepex.simpleclient:SimpleClientImpl:0.9.4') { 
     exclude module: 'guice-assistedinject' 
     exclude module: 'guice' 
     exclude module: 'ormlite-core' 
    } 
    compile 'org.roboguice:roboguice:[email protected]' 
    compile 'com.google.inject:guice:3.0:no_aop' 
    compile 'com.fasterxml.jackson.core:jackson-databind:2.4.0' 
    compile 'org.slf4j:slf4j-android:[email protected]' 
    compile 'com.j256.ormlite:ormlite-android:4.45' 
    compile 'com.android.support:support-v4:19.1.0' 
    compile 'com.google.code.gson:gson:2.2.+' 

образца приложение Deps:

compile 'com.android.support:appcompat-v7:19.1.0' 
compile 'com.android.support:gridlayout-v7:19.1.0' 
compile project(':library') 

Gradle зависимости выход для образца:

+--- com.android.support:appcompat-v7:19.1.0         
| \--- com.android.support:support-v4:19.1.0 
+--- com.android.support:gridlayout-v7:19.1.0 
| \--- com.android.support:support-v4:19.1.0 
\--- project :library    
    +--- com.inepex.simpleclient:SimpleClientImpl:0.9.4 
    | +--- com.j256.ormlite:ormlite-jdbc:4.45 
    | +--- io.netty:netty:3.5.7.Final 
    | \--- com.google.guava:guava:17.0 
    +--- org.roboguice:roboguice:3.0.1 
    +--- com.google.inject:guice:3.0 
    | +--- javax.inject:javax.inject:1 
    | +--- aopalliance:aopalliance:1.0 
    | \--- org.sonatype.sisu.inject:cglib:2.2.1-v20090111 
    |   \--- asm:asm:3.1  
    +--- com.fasterxml.jackson.core:jackson-databind:2.4.0 
    | +--- com.fasterxml.jackson.core:jackson-annotations:2.4.0 
    | \--- com.fasterxml.jackson.core:jackson-core:2.4.0 
    +--- org.slf4j:slf4j-android:1.6.1-RC1 
    +--- com.j256.ormlite:ormlite-android:4.45 
    | \--- com.j256.ormlite:ormlite-core:4.45 
    +--- com.android.support:support-v4:19.1.0 
    \--- com.google.code.gson:gson:2.2.+ -> 2.2.4 

Проблема заключается в том, что я не могу найти ком .google.inject.Module более одного раза, и исключение указывает, что оно определено несколькими. Он находится в guice.3.0-no_aop.jar.

Заранее спасибо

Балинт

+0

Попробуйте удалить это: compile 'com.android.support:support-v4:19.1.0' из примера app deps. –

ответ

2

В противном случае тест работает с конфигурацией нескольких Dex

Если ваш проект использует несколько конфигурации Dex проверьте опции DEX в Gradle конфигурации. Он не должен содержать incremental true.

У меня был проект, который не смог выполнить контрольно-измерительные тесты от Android Studio с этой ошибкой после каждого изменения кода. Я должен был очистить проект перед каждым прогоном, пока не удалю это свойство.

(это свойство по умолчанию ложь так, если это не было все в порядке)

dexOptions { 
     incremental false 
     javaMaxHeapSize '4g' 
    } 

Для получения более подробной информации относительно того, что эта опция Dex проверяет наличие What does the "Incremental Dex" option in Android Studio do?

о поиске повторяющихся зависимостей

С помощью градиента вы можете создать дерево зависимостей. Это дерево будет отмечать очевидные дубликаты со звездочкой в ​​конце. Пример:

./gradlew dependencies Application:dependencies 

Пример вывод (из примера проекта Instrumentation, неполный, хотя)

_debugApk - ## Internal use, do not manually configure ## 
\--- com.android.support:support-v4:21.0.2 
    \--- com.android.support:support-annotations:21.0.2 
_debugCompile - ## Internal use, do not manually configure ## 
\--- com.android.support:support-v4:21.0.2 
    \--- com.android.support:support-annotations:21.0.2 
_releaseApk - ## Internal use, do not manually configure ## 
\--- com.android.support:support-v4:21.0.2 
    \--- com.android.support:support-annotations:21.0.2 
_releaseCompile - ## Internal use, do not manually configure ## 
\--- com.android.support:support-v4:21.0.2 
    \--- com.android.support:support-annotations:21.0.2 
androidJacocoAgent - The Jacoco agent to use to get coverage data. 
\--- org.jacoco:org.jacoco.agent:0.7.1.201405082137 
androidJacocoAnt - The Jacoco ant tasks to use to get execute Gradle tasks. 
\--- org.jacoco:org.jacoco.ant:0.7.1.201405082137 
    +--- org.jacoco:org.jacoco.core:0.7.1.201405082137 
    | \--- org.ow2.asm:asm-debug-all:5.0.1 
    +--- org.jacoco:org.jacoco.report:0.7.1.201405082137 
    | +--- org.jacoco:org.jacoco.core:0.7.1.201405082137 (*) 
    | \--- org.ow2.asm:asm-debug-all:5.0.1 
    \--- org.jacoco:org.jacoco.agent:0.7.1.201405082137 

Обратите внимание, как зависимость org.jacoco.core перечислена здесь дважды и помеченной (*).

-1

Remove поддержка-v4 Lib из ваших образцов приложений DEPS, он уже доступен в DEPS библиотеки, которые косвенно расширяют путем выборки приложений DEPS.

+0

Спасибо. Я обновил вопрос, но никаких изменений. Поддержка - это зависимость appcompat и gridlayout. Я не думаю, что это может быть проблемой. –

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