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

升级JDK至18、Gradle至8.0后Activity出现未解析引用错误求助

问题解决方法

现象回顾

升级JDK到18、Gradle到8.0后,Activity中registerForActivityResult()、viewModels()等KTX扩展方法出现未解析引用错误,但Fragment无此问题,项目可正常构建。

解决步骤

  • 清理IDE缓存并重启
    升级Gradle和JDK后,Android Studio的旧缓存可能导致语法索引异常,执行以下操作:

    1. 点击顶部菜单栏 File → Invalidate Caches...
    2. 勾选 Invalidate and Restart 选项,等待IDE重启完成。
  • 升级Activity KTX依赖版本
    当前使用的activity-ktx:1.6.0与Gradle 8.0兼容性不足,建议升级到适配版本,同时同步Fragment KTX版本以保持一致性:
    修改模块内build.gradle的依赖:

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

    同步项目后,检查错误是否消失。

  • 确认Activity的导入与继承
    确保你的Activity继承自AppCompatActivity或ComponentActivity,并手动导入所需的KTX扩展函数:

    import androidx.activity.result.contract.ActivityResultContracts
    import androidx.lifecycle.viewModel
    

    部分情况下IDE不会自动导入扩展函数,需手动添加。

  • 匹配AGP与Gradle版本
    确保项目根目录build.gradle(或settings.gradle)中的Android Gradle Plugin(AGP)版本与Gradle 8.0兼容,例如:

    plugins {
        id 'com.android.application' version '7.4.2' apply false
        id 'org.jetbrains.kotlin.android' version '1.8.20' apply false
        // 其他插件保持对应兼容版本
    }
    

    Gradle 8.0需搭配AGP 7.4.0及以上版本,同时Kotlin版本需与AGP版本匹配(如Kotlin 1.8.x对应AGP 7.4.x)。

  • 验证项目JDK配置
    确认Android Studio中项目使用的JDK为18:

    1. 点击File → Project Structure
    2. 切换到SDK Location标签页,检查JDK Location是否指向JDK 18,而非IDE嵌入式JDK(通常为11)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 02:16:11