2017-03-24 62 views
0

我有一个库项目,其中包含像fastadapter,nanotask,领域等一些依赖项,我无法让它与主应用程序一起工作。不知何故,我需要在图书馆项目和主应用程序领域。Realm随着Android库项目

apply plugin: 'realm-android' 

生成错误:

Error:Execution failed for task ':app:transformClassesWithDexForDebug'. 
> com.android.build.api.transform.TransformException: 
com.android.ide.common.process.ProcessException: 
java.util.concurrent.ExecutionException: com.android.dex.DexException: 
Multiple dex files define Lio/realm/DefaultRealmModule; 

如果我只适用与库比项目没有更多的建筑误差插件。但在使用领域时出现此错误。

Task is not part of the schema for this Realm. 
        at io.realm.internal.RealmProxyMediator.getMissingProxyClassException(RealmProxyMediator.java:242) 
        at io.realm.DefaultRealmModuleMediator.getTableName(DefaultRealmModuleMediator.java:107) 
        at io.realm.RealmSchema.getTable(RealmSchema.java:295) 
        at io.realm.Realm.checkHasPrimaryKey(Realm.java:1530) 
        at io.realm.Realm.copyToRealmOrUpdate(Realm.java:952) 

这里是图书馆gradle这个

回答

1

如果域是在图书馆项目中使用,你必须定义与模式的RealmModule。否则,它将与为应用程序生成的模式冲突。这是多个DefaultRealmModule错误来自的地方。你可以在这里阅读更多关于它的信息:https://realm.io/docs/java/latest/#sharing-schemas

具体来说,这意味着你在图书馆RealmConfiguration必须是这个样子:

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

} 

RealmConfiguration config = new RealmConfiguration.Builder() 
    .modules(new MyLibraryModule()) 
    .build(); 
+1

如何导入境界到只有库,而在应用程序中一个领域,因为没有项目水平gradle这个库中的文件? – ono

+1

嗨,在库中将RealmConfiguration设置在哪里?无处不在,还是有特定的地方来设置它?或者我应该将其设置在应用程序内而不是库模块? –

+0

我也面临着@ono和alessandro面临的同样的问题。 –