我有一个项目结构:
- app模块
- 多个库模块..
- ......
- 上面的库模块消耗的公共库模块(commonlib)^(包含作为依赖的领域(编译' io.realm:realm-android:0.82.2')
现在commonlib作为依赖包含在许多模块中,当我尝试运行项目时,我发现了多个dex文件错误:
:app:preDexDebug UP-TO-DATE
:app:dexDebug
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lio/realm/DefaultRealmModule;
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)
Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/home/user/java/jdk1.7.0_75/bin/java'' finished with non-zero exit value 2
任何人都可以帮助我如何包含领域库,但同时在所有依赖模块中包含它和commonlib模块?感谢
答案 0 :(得分:1)
看起来您的某些图书馆项目尚未将其架构定义为库模块。如果他们不这样做,他们也会创建文件DefaultRealmModule
,这就是您在应用项目中遇到冲突的原因。
你的所有库都应该有一个看起来像这样的类:
@RealmModule(library = true, allClasses = true)
public class MyLibraryModule() {
}
您可以在此处阅读有关如何在库和应用项目中包含Realm的更多信息:https://realm.io/docs/java/latest/#sharing-schemas