ActivityResultLauncher未解析引用 图库选图调用报错问题
ActivityResultLauncher未解析引用问题排查解决指南
该报错的核心原因是Activity Result API是AndroidX在androidx.activity:activity:1.2.0、androidx.fragment:fragment:1.3.0版本才正式加入的API,低版本appcompat依赖内置的activity/fragment版本未达到要求,比如androidx.appcompat:appcompat:1.2.0内置的activity版本为1.1.0,因此会触发未解析引用异常。
排查解决步骤
升级核心依赖版本
优先升级appcompat依赖到1.3.0及以上稳定版本,直接内置符合要求的Activity Result API,在Module级build.gradle中修改依赖配置:
// 替换原有低版本appcompat依赖,可选择当前官方发布的最新稳定版 implementation 'androidx.appcompat:appcompat:1.6.1'若因老项目兼容性问题无法直接升级appcompat大版本,可单独补充对应依赖,不会影响原有功能:
// Java项目使用以下配置 implementation 'androidx.activity:activity:1.7.2' implementation 'androidx.fragment:fragment:1.6.1' // Kotlin项目可选择ktx扩展版本,内置更简洁的调用语法 implementation 'androidx.activity:activity-ktx:1.7.2' implementation 'androidx.fragment:fragment-ktx:1.6.1'清理缓存同步项目
依赖修改完成后点击Android Studio右上角的
Sync Now按钮同步Gradle配置,若同步后仍存在报错,执行顶部菜单栏File → Invalidate Caches...,勾选清理缓存并重启IDE即可消除编译报错。校验调用规范
依赖问题解决后需注意:ActivityResultLauncher必须在Activity的onCreate生命周期触发前、或Fragment的onAttach触发前完成注册,禁止在点击事件等运行时回调中动态注册,否则会触发运行时异常。
内容的提问来源于stack exchange,提问作者Emre Ozcan
相关产品推荐
相关产品推荐

