2017-10-10 5 views
1

マイアプリのデータベースクラスAndroidの部屋:AppDatabase_Implが存在しない

@Database(entities = {Detail.class}, version = Constant.DATABASE_VERSION) 
public abstract class AppDatabase extends RoomDatabase { 

private static AppDatabase INSTANCE; 

public abstract FavoritesDao favoritesDao(); 

public static AppDatabase getAppDatabase(Context context) { 
    if (INSTANCE == null) { 
     INSTANCE = 
       Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, Constant.DATABASE).allowMainThreadQueries().build(); 

       //Room.inMemoryDatabaseBuilder(context.getApplicationContext(),AppDatabase.class).allowMainThreadQueries().build(); 
    } 
    return INSTANCE; 
} 

public static void destroyInstance() { 
    INSTANCE = null; 
} 

}

のGradle libに:
コンパイル "android.arch.persistence.room:runtime:+"
annotationProcessor」 android.arch.persistence.room:compiler:+ "

私は、このエラーが発生することを尋ねるとき、AppDatabase_Implは存在しません 私のアプリケーションでエーションクラス

public class APp extends Application { 

private boolean appRunning = false; 



@Override 
public void onCreate() { 
    super.onCreate(); 
    AppDatabase.getAppDatabase(this); //--AppDatabase_Impl does not exist 

} 

}

+0

あなたは正しいlogcatエラーを提供できますか? – Debanjan

+0

発生原因:java.lang.RuntimeException:AppDatabaseの実装が見つかりません。 AppDatabase_Implが存在しません –

+0

gradleにルームスキーマの場所を指定しましたか? – Debanjan

答えて

1

使用次のGradleのリンク:あなたはこのようTHERからAppdatabaseをdiffretn singlotonクラスを作成し、取得する必要があり

compile 'android.arch.persistence.room:runtime:1.0.0-alpha9' 
annotationProcessor 'android.arch.persistence.room:compiler:1.0.0-alpha9' 

RoomDB.java

0私はaptの依存

implementation "android.arch.lifecycle:extensions:$archLifecycleVersion" 
implementation "android.arch.persistence.room:runtime:$archRoomVersion" 
annotationProcessor "android.arch.lifecycle:compiler:$archLifecycleVersion" 
annotationProcessor "android.arch.persistence.room:compiler:$archRoomVersion" 
annotationProcessorを追加した後

、それを再構築し、問題の解決策を忘れてしまったので、

public class RoomDB { 

private static RoomDB INSTANCE; 

public static AppDatabase getInstance(Context context) { 
    if (INSTANCE == null) { 
     INSTANCE = 
       Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, Constant.DATABASE).allowMainThreadQueries().build(); 

       //Room.inMemoryDatabaseBuilder(context.getApplicationContext(),AppDatabase.class).allowMainThreadQueries().build(); 
    } 
    return INSTANCE; 
} 

public static void destroyInstance() { 
    INSTANCE = null; 
} 

App.java

public class App extends Application { 

private boolean appRunning = false; 

@Override 
public void onCreate() { 
    super.onCreate(); 
    RoomDB.getInstance(this); //This will provide AppDatabase Instance 
} 
+0

私はコンストラクタを作成していない、私は静的インスタンスを介して直接使用しています。 –

+0

私はルームデータベースのサンプルプロジェクトを作成しました。ここで確認できます:https://github.com/burhanrashid52/Android-Room-Data-Persistent –

+0

私は上記リンクのとおりでしたが、同じエラーです。 –

1

私はこの問題に会いました。

関連する問題