Android Studio升级Gradle7.4之后Hilt报错的解决

升级Android Studio和Gradle版本

升级到 Android Studio Dolphin | 2021.3.1 版本之后,gradle版本的推荐设置是7.4,于是便一同升级了。

Android Studio 提供升级的功能
gradle update
upgrade assistant

Hilt版本升级

升级助手会自动帮你把 hilt-android-gradle-plugin 升级到 2.40.1。
此时直接运行项目应该是正常的。
如果编译不通过,可以尝试将Hilt的版本同步到官网的最新版本。
点此查看:https://dagger.dev/hilt/gradle-setup

编译通过,但是运行报错 SAVED_STATE_REGISTRY_OWNER_KEY

如果build没有问题但是一运行就闪退,并且报错如下:
java.lang.IllegalArgumentException: CreationExtras must have a value by SAVED_STATE_REGISTRY_OWNER_KEY

那么问题其实不在hilt版本上了,需要升级的则是以下依赖

    implementation "androidx.activity:activity-ktx:1.4.0"
    implementation "androidx.fragment:fragment-ktx:1.4.1"

将他们分别升级至1.5.+,报错消失。

    implementation "androidx.activity:activity-ktx:1.5.1"
    implementation "androidx.fragment:fragment-ktx:1.5.2"

总结

每次升级gradle大概率会遇到hilt的版本问题,需要注意hilt版本和gradle版本的对应更新。
但是这次反而是因为其他组件没更新导致的问题。
关于 CreationExtras ,lifecycle 2.5.0-alpha01 开始引入了 CreationExtras 的概念,它替代了 Factory 的任务为 VM 初始化所需的参数,Factory 无需再持有状态。
详情可自行参考官方文档。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值