Java 领域-来自不同项目的混合模型
我的主要项目中有一个模型:Java 领域-来自不同项目的混合模型,java,android,orm,module,realm,Java,Android,Orm,Module,Realm,我的主要项目中有一个模型: public class A extends RealmObject{ private String var1; private B var2; //... more } 另外,我的类库中有我的类B(不同的android studio模块) 我无法构建此文件,因为: 错误:将字节码转换为索引时出错:原因: com.android.dex.dex异常:多个dex文件定义 Lio/realm/DefaultRealmModule 错误:任务执
public class A extends RealmObject{
private String var1;
private B var2;
//... more
}
另外,我的类库中有我的类B
(不同的android studio模块)
我无法构建此文件,因为:
错误:将字节码转换为索引时出错:原因:
com.android.dex.dex异常:多个dex文件定义
Lio/realm/DefaultRealmModule
错误:任务执行失败:容器: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{
}
它应该从两个项目中提取我的模型,对吗
我的格拉德尔:
类路径“io.realm:realm gradle插件:2.0.2”
及
应用插件:'realmandroid'
在这两个项目中
如何以正确的方式进行此操作?您必须使用RealmModule在库项目中公开您的模式
查看文档:您的库项目必须公开一个
@RealmModule
,它公开library=true,allClasses=false
,并且只公开对象B
。您应该将该模块添加到具有的项目的配置中
您可以选择在项目中添加Realm.getDefaultModule()
,也可以为项目本身创建一个模块,即library=false,allClasses=true
@RealmModule(library = true, allClasses = true)
public class LibraryModule { // in library
}
及
每个项目都应该有一个模块。库项目必须通过架构公开其对象
@RealmModule(library = true, allClasses = true)
public class LibraryModule { // in library
}
.modules(new LibraryModule(), Realm.getDefaultModule()) // in project