【发布时间】:2022-07-22 18:24:51
【问题描述】:
我正在尝试实现房间数据库,我已经完成了Official Website的步骤,'AppDatabase.java'文件是这样的:
import android.content.Context;
import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
@Database(entities = {User.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public static AppDatabase instance;
public static synchronized AppDatabase getInstance(Context context){
if (instance==null){
instance = Room.databaseBuilder(context.getApplicationContext(),
AppDatabase.class, "app_database").fallbackToDestructiveMigration().build();
}
return instance;
}
}
以及我用于房间的依赖项:
// Room Database
def room_version = "2.4.2"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
// optional - RxJava2 support for Room
implementation "androidx.room:room-rxjava2:$room_version"
// optional - RxJava3 support for Room
implementation "androidx.room:room-rxjava3:$room_version"
// optional - Guava support for Room, including Optional and ListenableFuture
implementation "androidx.room:room-guava:$room_version"
// optional - Test helpers
testImplementation "androidx.room:room-testing:$room_version"
// optional - Paging 3 Integration
implementation "androidx.room:room-paging:2.5.0-alpha02"
// Room Database
这里返回 2 个错误:
onCreate(SupportSQLiteDatabase) in <anonymous com.example.testdb1.room.AppDatabase_Impl$1> cannot override onCreate(SupportSQLiteDatabase) in Delegate
attempting to assign weaker access privileges; was public
onValidateSchema(SupportSQLiteDatabase) in <anonymous com.example.testdb1.room.AppDatabase_Impl$1> cannot override onValidateSchema(SupportSQLiteDatabase) in Delegate
attempting to assign weaker access privileges; was public
它在“Chipmunk”版本之前工作(在“Bumblebee”中工作),但它开始抛出这些错误。
谁能告诉我这里发生了什么?
注意:如果您要编写代码,请写在我明智地放置代码的地方,谢谢。
【问题讨论】:
-
我目前正在开始使用 android 编程并且遇到了同样的问题。在删除不必要的可选依赖项并只保留核心(运行时和编译器)之后,一切对我来说都很好。可能值得你一试
标签: java android android-room access-modifiers