【问题标题】:Multiple dex files on Android Studio using OpenCV Library使用 OpenCV 库的 Android Studio 上的多个 dex 文件
【发布时间】:2015-10-01 12:21:07
【问题描述】:

所以,我的方案是这样的: 我的应用程序 A 项目使用 Java OpenCV 库,还有一个模块 B,它也是一个使用 Java OpenCV 库的库模块。

我的模块设置是这样的:在应用程序 A 我编译模块 BB 模块编译 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/调试 --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)

Gradle 脚本:

(应用 - 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 库的模块一起使用,我该怎么做?

【问题讨论】:

  • 你在使用 proguard 吗?

标签: java android opencv android-studio


【解决方案1】:

您的 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
}

谢谢..!!

【讨论】:

  • 好一个,但现在它说: > java.util.zip.ZipException: duplicate entry: org/opencv/BuildConfig.class ,为什么?
  • @Rafael Ruiz:你能在你的问题中发布完整的错误吗?如果您遇到此错误,请参考此答案 -> stackoverflow.com/a/32581498/4018207
【解决方案2】:

你可以使用

 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

【讨论】:

猜你喜欢
  • 2015-02-25
  • 2015-09-25
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 2014-03-18
  • 2014-11-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多