在库项目中使用Room DB

时间:2018-05-24 11:33:17

标签: android database sqlite android-sqlite android-room

我正在尝试将房间数据库集成到图书馆项目中

apply plugin: 'com.android.library'
.
.
.
.
.
compile "android.arch.persistence.room:runtime:$rootProject.roomVersion"

annotationProcessor "android.arch.persistence.room:compiler:$rootProject.roomVersion"

当我在我的应用程序中使用此库并尝试访问Room DB时,它总是崩溃并让我跟踪异常

Android room persistent: AppDatabase_Impl does not exist

然而,当我在我的应用程序中直接使用room DB时,它工作正常。 在库项目中使用房间DB有任何限制吗?

1 个答案:

答案 0 :(得分:0)

首先将您的应用卸载到设备和模拟器中。

然后在步骤下面流到房间db。 将以下dependecy添加到app level gradle文件中。

    implementation "android.arch.persistence.room:runtime:1.0.0"
annotationProcessor "android.arch.persistence.room:compiler:1.0.0"

比制作以下的应用级别活动..

public class AppActivity extends Application {

static AppDatabase db;

@Override
public void onCreate() {
    super.onCreate();
    db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "database-name").build();
}

public static AppDatabase getDatabase() {
    return db;
}

}

然后制作应用数据库..

@Database(entities = {MyTable.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract MyTableDao getTableDao();
}

Dao ..

@Dao
public interface MyTableDao {
@Insert
void insertData(MyTable myTable);
@Query("SELECT * FROM MyTable ")
List<MyTable> getData();

}

然后还将应用程序活动定义到应用程序标记中的android清单文件中。

        android:name=".AppActivity"