房间 Sqlite Android 错误。 ColumnInfo 没有定义元素 collate()
Room Sqlite Android Error. ColumnInfo does not define an element collate()
我在我的 android 应用程序中使用 google ROOM lib 到 sqlite 数据库。
我在我的单个应用程序中使用不同的控制器(用户定义)创建了两个数据库。
这是我实现的代码
数据库 1 :
@Database(entities = {JobTable.class}, version = 1)
public abstract class JobRoomController extends RoomDatabase
{
public static JobRoomController controller;
public abstract JobTable jobTable();
public static JobRoomController database(Context context)
{
if(controller == null)
{
controller = Room.databaseBuilder(context.getApplicationContext(),
JobRoomController.class, "Job")
.allowMainThreadQueries()
.build();
}
return controller;
}
@Override
protected SupportSQLiteOpenHelper createOpenHelper(DatabaseConfiguration config) {
return null;
}
@Override
protected InvalidationTracker createInvalidationTracker() {
return null;
}
}
数据库 2:
@Database(entities = {DbTrackServer.class,DbGpsStatus.class}, version = 1)
public abstract class RoomControl extends RoomDatabase {
public abstract IGpsStatus gpsStatus();
public abstract ITrack track();
private static RoomControl roomControl;
public static RoomControl database(Context context)
{
if(roomControl == null)
{
roomControl = Room.databaseBuilder(context.getApplicationContext(),
RoomControl.class, "mobileTracker")
.allowMainThreadQueries()
.build();
}
return roomControl;
}
@Override
protected SupportSQLiteOpenHelper createOpenHelper(DatabaseConfiguration config) {
return null;
}
@Override
protected InvalidationTracker createInvalidationTracker() {
return null;
}
}
但是当我构建我的项目时它显示 gradle 错误。
**错误:任务“:app:compileDebugJavaWithJavac”执行失败。
java.lang.IllegalArgumentException: @android.arch.persistence.room.ColumnInfo does not define an element collate()**
我已经通过从 gradle 文件更新 Room Lib 解决了这个问题。
我在我的 android 应用程序中使用 google ROOM lib 到 sqlite 数据库。
我在我的单个应用程序中使用不同的控制器(用户定义)创建了两个数据库。
这是我实现的代码
数据库 1 :
@Database(entities = {JobTable.class}, version = 1)
public abstract class JobRoomController extends RoomDatabase
{
public static JobRoomController controller;
public abstract JobTable jobTable();
public static JobRoomController database(Context context)
{
if(controller == null)
{
controller = Room.databaseBuilder(context.getApplicationContext(),
JobRoomController.class, "Job")
.allowMainThreadQueries()
.build();
}
return controller;
}
@Override
protected SupportSQLiteOpenHelper createOpenHelper(DatabaseConfiguration config) {
return null;
}
@Override
protected InvalidationTracker createInvalidationTracker() {
return null;
}
}
数据库 2:
@Database(entities = {DbTrackServer.class,DbGpsStatus.class}, version = 1)
public abstract class RoomControl extends RoomDatabase {
public abstract IGpsStatus gpsStatus();
public abstract ITrack track();
private static RoomControl roomControl;
public static RoomControl database(Context context)
{
if(roomControl == null)
{
roomControl = Room.databaseBuilder(context.getApplicationContext(),
RoomControl.class, "mobileTracker")
.allowMainThreadQueries()
.build();
}
return roomControl;
}
@Override
protected SupportSQLiteOpenHelper createOpenHelper(DatabaseConfiguration config) {
return null;
}
@Override
protected InvalidationTracker createInvalidationTracker() {
return null;
}
}
但是当我构建我的项目时它显示 gradle 错误。
**错误:任务“:app:compileDebugJavaWithJavac”执行失败。
java.lang.IllegalArgumentException: @android.arch.persistence.room.ColumnInfo does not define an element collate()**
我已经通过从 gradle 文件更新 Room Lib 解决了这个问题。