我正在我的Android应用中使用Gradle,我想使用JScience库的依赖。我已经以这种方式添加了该库:
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile 'org.jscience:jscience:4.3.1'
testCompile group: 'junit', name: 'junit', version: '4.11'
}
但是在编译时我遇到了错误:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Ljavax/realtime/MemoryArea;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
at com.android.dx.command.dexer.Main.run(Main.java:230)
at com.android.dx.command.dexer.Main.main(Main.java:199)
at com.android.dx.command.Main.main(Main.java:103)
这是因为项目中存在重复的
javax.realtime
包,其中一个来自JDK,另一个来自Jscience库。我尝试在Gradle中使用以下方式从Jscience库中移除该包进行修复:sourceSets {
main {
java {
exclude 'javax/realtime/**'
}
}
}
configurations {
all*.exclude group: 'javax.realtime'
}
但这并没有帮助。因此,该软件包仍然存在于依赖项中。
![enter image description here](https://istack.dev59.com/uHEGE.webp)
javax.realtime
。当您编译Android应用程序时,JDK的类库具有javax.realtime
是无意义的,因为您并未使用JDK的类库。 - CommonsWarejavax.realtime
包。 - yyunikov