Android Studio上使用OpenCV库的多个dex文件

时间:2015-10-01 12:21:08

标签: java android opencv android-studio

所以,我的计划是这样的: 我的应用程序 A 项目使用Java OpenCV库,模块 B ,这是一个使用Java OpenCV库的库模块。

我的模块设置是这样的:在应用 A 中我编译模块 B B 模块编译de Java OpenCV库,但我明白了:

  

错误:任务':app:dexDebug'的执行失败。   com.android.ide.common.internal.LoggedErrorException:无法运行命令:       /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     错误代码:       2     输出:       意外的顶级例外情况:       com.android.dex.DexException:多个dex文件定义Lorg / opencv / BuildConfig;           在com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)           在com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)           在com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)           在com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)           在com.android.dx.merge.DexMerger.merge(DexMerger.java:189)           在com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)           在com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)           在com.android.dx.command.dexer.Main.run(Main.java:246)           在com.android.dx.command.dexer.Main.main(Main.java:215)           在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库的模块一起使用,我应该怎么做?

2 个答案:

答案 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
}

谢谢.. !!

答案 1 :(得分:0)

您可以使用

var maker: typeof Foo = Foo;

低于未变更

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

看看这里

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