如何在同一个应用程序项目中将一个库模块多次包含到多个库模块中?

How to include a library module multiple times into multiple library modules in the same app project?

我的项目结构如下:
- 应用模块
- 多个库模块..
- ...
- 上面库模块使用的公共库模块 (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 模块包含在所有依赖模块中?谢谢

您的某些库项目似乎没有将其架构定义为库模块。如果他们不这样做,他们也会创建文件 DefaultRealmModule 这就是您在应用程序项目中遇到冲突的原因。

你所有的图书馆都应该有一个看起来像这样的 class:

@RealmModule(library = true, allClasses = true)
public class MyLibraryModule() {

}

您可以在此处详细了解如何将 Realm 包含在库和应用程序项目中:https://realm.io/docs/java/latest/#sharing-schemas