2016-10-12 77 views
1

我有我的主要項目模型混合模型境界來自不同項目的

Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Lio/realm/DefaultRealmModule;

Error:Execution failed for task ':Container:transformClassesWithDexForDebug'. com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException

我設置我自己的模塊:因爲我不能建立這個

@NonNull 
public static RealmConfiguration getRealmConfiguration(String name) { 
    return new RealmConfiguration.Builder() 
      .name(name) 
      .deleteRealmIfMigrationNeeded() 
      .modules(new MyRealmModule()) 
      .build(); 
} 

@RealmModule(allClasses = true, library = true) 
public static class MyRealmModule{ 
} 

它應該採取我的模型從這兩個項目,我說得對嗎?

我gradle這個:

classpath "io.realm:realm-gradle-plugin:2.0.2"

在兩個項目

apply plugin: 'realm-android'

如何做到在正確的方式?

+0

你應該有每個項目的模塊。庫項目必須通過模式公開他們的對象 – EpicPandaForce

回答

0

庫項目必須公開@RealmModule暴露library = true, allClasses = false,只有對象B。並且您應該將該模塊添加到具有A項目的配置中。

並且您可以選擇在項目中添加Realm.getDefaultModule(),或者爲項目本身創建模塊library = false, allClasses = true

@RealmModule(library = true, allClasses = true) 
public class LibraryModule { // in library 
} 

.modules(new LibraryModule(), Realm.getDefaultModule()) // in project 
相關問題