这是我的AllFilesListViewModel课。
class AllFilesListViewModel @ViewModelInject constructor(
private val pdfItemRepository: PdfItemRepository):ViewModel() {
}
Run Code Online (Sandbox Code Playgroud)
这里是PdfItemRepository课堂。
@Singleton
class PdfItemRepository @Inject constructor(private val pdfItemDao: PdfItemDao){
}
Run Code Online (Sandbox Code Playgroud)
对于pdfItemDao. 我创建了一个名为DatabaseModule. 下面是代码——
@Module
@InstallIn(ApplicationComponent::class)
object DatabaseModule {
@Provides
fun provideDatabase(@ApplicationContext context: Context):AppDatabase{
return AppDatabase.getDataBase(context)
}
@Provides
fun providePdfItemDao(database:AppDatabase):PdfItemDao{
return database.pdfItemDao()
}
}
Run Code Online (Sandbox Code Playgroud)
这是AllFilesFragment.kt我使用 viewModel的片段类。
@AndroidEntryPoint
class AllFilesFragment:Fragment(){
private lateinit var binding:AllFilesFragmentBinding
private val viewModel by viewModels<AllFilesListViewModel>()
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? { …Run Code Online (Sandbox Code Playgroud) 我已正确完成所有操作,但仍然无法在我的项目中使用 Hilt。
build.gradle(:app)
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'kotlin-kapt'
apply plugin: 'dagger.hilt.android.plugin'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
buildFeatures{
viewBinding = true
dataBinding = true
}
defaultConfig {
applicationId "com.emptysheet.pdfreader_autoscroll"
minSdkVersion 16
targetSdkVersion 29
versionCode 7
versionName "1.7"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
// To inline the bytecode built with JVM target 1.8 into
// bytecode that …Run Code Online (Sandbox Code Playgroud) android kotlin android-studio android-studio-4.0 dagger-hilt