多个dex文件定义Lcom / coremedia / iso / AbstractBoxParser $ 1;

时间:2017-10-27 10:01:56

标签: android android-gradle

我收到Gradle错误:

  

将字节码转换为dex时出错:原因:com.android.dex.DexException:   多个dex文件定义Lcom / coremedia / iso / AbstractBoxParser $ 1;我   想要使用isoparser-1.0.6.jar和编译   ' com.googlecode.mp4parser:isoparser:1 +'

为了我的发展目的。我在下面给出了Gradle

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

    compile 'com.android.support:appcompat-v7:22.2.0'

    compile 'com.jakewharton:butterknife:6.1.0'

    compile 'com.googlecode.mp4parser:isoparser:1.+'

    compile 'org.apache.commons:commons-io:1.3.2'

    compile files('libs/aspectjrt-1.7.3 (1).jar')
    compile files('libs/isoparser-1.0.6.jar')
}

1 个答案:

答案 0 :(得分:0)

  

多个dex文件定义L com / coremedia / iso /

您不需要JAR文件。您正在使用它们的事实导致重复文件,Gradle可以自行解决,但仅在使用Maven依赖项时。

您已经编译了此ISO解析器库。它取决于aspectjrt,所以你不需要显式编译它,除非你真的想要

https://mvnrepository.com/artifact/com.googlecode.mp4parser/isoparser/1.0.6

compile 'com.googlecode.mp4parser:isoparser:1.0.6'
compile 'org.aspectj:aspectjrt:1.8.2' // This version is used by isoparser:1.0.6

// compile files('libs/aspectjrt-1.7.3 (1).jar')
// compile files('libs/isoparser-1.0.6.jar')

您需要实际删除 JAR文件,因为无论如何这行都会编译它们。换句话说,将compile files()置为多余

compile fileTree(dir: 'libs', include: ['*.jar'])