这个问题是由于 Dagger Hilt 没有正确初始化 Room 数据库所造成的。解决这个问题需要在 Dagger Hilt 的模块中提供 Room 数据库实现。
以下是一个可能的解决方案:
implementation 'androidx.room:room-runtime:2.4.0'
kapt 'androidx.room:room-compiler:2.4.0'
@Module
@InstallIn(ApplicationComponent.class)
public class AppModule {
@Provides
public MyDatabase provideMyDatabase(Application application) {
return Room.databaseBuilder(application, MyDatabase.class, "my_database").build();
}
}
@Database(entities = {User.class}, version = 1)
public abstract class MyDatabase extends RoomDatabase {
public abstract UserDao userDao();
}
public class MyRepository {
private MyDatabase myDatabase;
@Inject
public MyRepository(MyDatabase myDatabase) {
this.myDatabase = myDatabase;
}
// ...
}
这样,你的 Dagger Hilt 就能正确地初始化 Room 数据库了。