2016-10-12 14 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

あなたのライブラリプロジェクトはlibrary = true, allClasses = falseとオブジェクトのみBを公開@RealmModuleを公開する必要があります。そして、そのモジュールをプロジェクトの構成に追加する必要があります。

Realm.getDefaultModule()をプロジェクトに追加するか、プロジェクト自体のモジュールをlibrary = false, allClasses = trueとして作成するかを選択できます。

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

.modules(new LibraryModule(), Realm.getDefaultModule()) // in project 
関連する問題