小编Raj*_*mar的帖子

在 Android 中使用 Hilt 后无法创建视图模型的实例

这是我的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)

android kotlin android-jetpack dagger-hilt

21
推荐指数
6
解决办法
8633
查看次数

未解决的引用 @HiltAndroidApp 或 Android 中的任何其他 Hilt 注释

我已正确完成所有操作,但仍然无法在我的项目中使用 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

6
推荐指数
1
解决办法
3132
查看次数