0

我在 Android 应用程序上使用 AssetSQLiteOpenHelper 库,但是AssetSQLiteOpenHelperFactory在以下上下文中创建类的新实例时:

RoomDatabase.Builder<AppDatabase> builder = Room.databaseBuilder(
    context.getApplicationContext(), 
    AppDatabase.class,context.getString(R.string.database_name));

return (builder.openHelperFactory(new AssetSQLiteOpenHelperFactory())
    .allowMainThreadQueries()
    .addMigrations(MIGRATION_1_2).build());

我收到错误:

'openHelperFactory(androidx.sqlite.db.SupportSQLiteOpenHelper.Factory)' in 
'androidx.room.RoomDatabase.Builder' cannot be applied to 
'(com.fstyle.library.helper.AssetSQLiteOpenHelperFactory)'

这与文档所述相反(单击此处查看其文档)。

我已确保通过以下方式将它们的依赖项包含在build.gradle文件中:

implementation 'com.github.daolq3012:AssetSQLiteOpenHelper:V1.0.1'

我尝试了“清理项目”->“重建项目”和“无效缓存/重新启动”选项,但没有成功。

请记住,我自己在回答这个问题,因为我找到了解决方案,并希望与可能遇到相同问题的其他人分享。

4

1 回答 1

0

将以下行添加到gradle.properties文件中,然后将项目与 Gradle 文件同步解决了这个问题:

android.useAndroidX=true
android.enableJetifier=true

我认为这个错误是由从Support Libraries迁移到AndroidX时的迁移问题引起的,因此启用 Jetifier 解决了它。

这是一个有用的 SO 答案的链接android.enableJetifier=trueandroid - What is Jetifier?

于 2021-11-26T19:11:38.230 回答