2015-10-01 2 views
0

Итак, моя схема такова: У меня есть мое приложение проекта, который использует библиотеку Java OpenCV и модуль B который представляет собой библиотечный модуль, который использует Java OpenCV.Несколько DEX файлов на Android Studio с использованием OpenCV библиотеки

Мои настройки модулей это одна: В приложении компилировать модуль B и B библиотеки модули компилирует де Java OpenCV, но я получаю:

Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.internal.LoggedErrorException: Failed to run command: /Users/rafaelruizmunoz/Library/Android/sdk/build-tools/21.1.2/dx --dex --no-optimize --output /Users/rafaelruizmunoz/crossproject/Android/demoapp/app/build/intermediates/dex/debug --input-list=/Users/rafaelruizmunoz/crossproject/Android/demoapp/app/build/intermediates/tmp/dex/debug/inputList.txt Error Code: 2 Output: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lorg/opencv/BuildConfig; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) at com.android.dx.merge.DexMerger.merge(DexMerger.java:189) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) at com.android.dx.command.dexer.Main.run(Main.java:246) at com.android.dx.command.dexer.Main.main(Main.java:215) at com.android.dx.command.Main.main(Main.java:106)

enter image description here

Gradle скрипты:

(App - A)

dependencies { 
     compile fileTree(dir: 'libs', include: ['*.jar']) 
     compile 'com.android.support:appcompat-v7:21.0.3' 
     compile project(':ReaderLib_OpenCVBased') 
    } 

(модуль - B)

dependencies { 
     compile fileTree(dir: 'libs', include: ['*.jar']) 
     compile project(':openCVLibrary249') 
    } 

Так что моя основная проблема заключается в том, что я не могу использовать OpenCV библиотеку с модулем, который компилируется библиотека OpenCV, как мне это сделать?

+0

вы используете ProGuard? – Blackbelt

+0

да, я использую его –

ответ

2

У вас есть проблема с файлом multidex, поэтому, пожалуйста, добавьте ниже зависимости от вашего файла Gradle приложения.

compile 'com.android.support:multidex:1.0.1' 

добавить Также эту строку:

defaultConfig { 

    applicationId 'pkg' 
    minSdkVersion 
    targetSdkVersion 
    versionCode 
    versionName 

    // Enable MultiDexing: https://developer.android.com/tools/building/multidex.html 
    multiDexEnabled true 
} 

Спасибо .. !!

+0

Хорошо, но теперь он говорит: > java.util.zip.ZipException: дублировать запись: org/opencv/BuildConfig.class , почему? –

+0

@ Rafael Ruiz: Не могли бы вы высказать полную ошибку в своем вопросе? Пожалуйста, обратитесь к этому ответу и вы получите эту ошибку -> http://stackoverflow.com/a/32581498/4018207 – AndiGeeky

0

Вы можете использовать

compile 'com.android.support:multidex:1.0.1' 
androidTestCompile 'com.android.support:multidex-instrumentation:1.0.1' 

И ниже неизменным

defaultConfig { 

    applicationId 'pkg' 
    minSdkVersion 
    targetSdkVersion 
    versionCode 
    versionName 

    // Enable MultiDexing: https://developer.android.com/tools/building/multidex.html 
    multiDexEnabled true 
} 

Посмотрите здесь

https://code.google.com/p/android/issues/detail?id=81804

+1

То же самое: Ошибка: выполнение выполнено для задачи ': appAllDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: org/opencv/BuildConfig.class –

+1

@RafaelRuiz Хорошо .Проверьте этот URL-адрес http://stackoverflow.com/questions/26718825/how-to-resolve-java-util- zip-zipexception и https://developer.android.com/intl/ja/tools/building/multidex.html#testing –

+0

@RafaelRuiz решить это еще? –

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