You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Hilt时Activity中viewModels()引用未解决问题求助

解决方案

在App级build.gradle的dependencies块中添加Activity KTX依赖:

implementation 'androidx.activity:activity-ktx:1.7.2'

原因说明

  • Fragment里的viewModels()扩展函数来自你已添加的fragment-ktx库,所以能正常使用
  • Activity中的viewModels()属于activity-ktx库提供的扩展函数,你的依赖列表里缺了这个库,才会出现Unresolved reference错误

另外建议移除过时的android.arch.lifecycle:extensions:1.1.1依赖——这个是旧的Support库版本,和你用的AndroidX库冲突,直接删除即可,你已经添加了AndroidX的lifecycle-viewmodel-ktx和lifecycle-livedata-ktx,完全能替代它的功能。


问题背景

已配置网上相关依赖,参考技术社区内容后仍无法解决:Activity中创建ViewModel实例时提示Unresolved reference: viewModels(),但Fragment中使用无此问题。

提供的依赖代码

App build.gradle

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'kotlin-android'
    id 'kotlin-parcelize'
    id 'androidx.navigation.safeargs'
    id 'kotlin-kapt'
    id 'com.google.dagger.hilt.android'
}
dependencies {

    implementation 'androidx.core:core-ktx:1.10.1'
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'com.google.android.material:material:1.9.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'

    implementation 'androidx.navigation:navigation-fragment-ktx:2.6.0'
    implementation 'androidx.navigation:navigation-ui-ktx:2.6.0'

    implementation 'androidx.fragment:fragment-ktx:1.6.1'
    //Retrofit - network calls
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.6'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    implementation 'com.google.code.gson:gson:2.9.0'
    implementation 'com.google.android.gms:play-services-location:21.0.1'
    implementation 'com.google.firebase:firebase-messaging:23.2.0'

    //Hilt - Dependency Injection
    implementation("com.google.dagger:hilt-android:2.44")
    kapt("com.google.dagger:hilt-android-compiler:2.44")


    //Page lifecycle owners
    def lifecycle_version = "2.6.1"
    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
    implementation "android.arch.lifecycle:extensions:1.1.1"

    def coroutines_version = "1.6.0"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"

    //QR generation library
    implementation 'com.google.zxing:core:3.4.1'


    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'

}

Project build.gradle

plugins {
    id 'com.android.application' version '7.4.1' apply false
    id 'com.android.library' version '7.4.1' apply false
    id 'org.jetbrains.kotlin.android' version '1.8.0' apply false
    id 'androidx.navigation.safeargs.kotlin' version '2.5.1' apply false
    id("com.google.dagger.hilt.android") version "2.44" apply false
}

代码截图

  • Activity代码截图:Activity代码截图
  • Fragment代码截图:Fragment代码截图

内容的提问来源于stack exchange,提问作者nileshbirhade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 00:45:26