Android ActivityResult API 未解决的引用错误 registerForActivityResult

Posted

技术标签:

【中文标题】Android ActivityResult API 未解决的引用错误 registerForActivityResult【英文标题】:Android ActivityResult API unresolved reference error registerForActivityResult 【发布时间】:2020-11-13 22:10:30 【问题描述】:

我正在尝试使用此处所述的 ActivityResult API ActivityResult APIs

但它给出了未解决的参考错误。

我正在使用以下依赖项

api 'androidx.activity:activity:1.1.0'
api 'androidx.activity:activity-ktx:1.1.0'
api 'androidx.fragment:fragment:1.2.5'
api 'androidx.fragment:fragment-ktx:1.2.5'

【问题讨论】:

查看链接页面上列出的依赖项。它没有明确说明,我还没有检查过,但这些可能是必要的最低版本。 是的,我也尝试使用那些提到的版本,但同样的错误,然后我想使用稳定版本。 是的,我也有同样的行为。奇怪的。但是,我的 IDE 告诉我最新版本是 alpha07,并且在升级到这些版本时它可以按预期工作。即"androidx.activity:activity:1.2.0-alpha07""androidx.fragment:fragment:1.3.0-alpha07" 【参考方案1】:

根据Getting a result from an activity guide:

强烈建议使用 AndroidX Activity 1.2.0-alpha02 和 Fragment 1.3.0-alpha02 中引入的 Activity Result API。

因此,使用稳定版本将不包含这些 API。每个的最新版本是 alpha07,这意味着您的依赖项将是:

api 'androidx.activity:activity-ktx:1.2.0-alpha07'
api 'androidx.fragment:fragment-ktx:1.3.0-alpha07'

注意:您的活动必须从 ComponentActivity 扩展而来,AppCompat 1.1.0 中引入并包括 registerForActivityResult() API

【讨论】:

我有同样的问题,但没有帮助。 IDE 显示 "Unresolved reference: registerForActivityResult" ,但它可以构建得很好......怎么可能? 同样无法让 Android Studio 自动完成registerForActivityResult。上面写着“未解析的引用:registerForActivityResult”,所以我根本无法使用这个 api 进行编码。【参考方案2】:

试试这个新版本来了。

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

【讨论】:

我的 build.gradle 上有这个,但我也收到之前指定的错误。 @cyber_angel 好的,但是请检查项目 build.gradle 的依赖项,其中 gradle 需要最新版本才能正常工作。 请检查你的 kotlin 版本 gradle。

以上是关于Android ActivityResult API 未解决的引用错误 registerForActivityResult的主要内容,如果未能解决你的问题,请参考以下文章

Jetpack:使用 ActivityResult 处理 Activity 之间的数据通信

使用 Jetpack ActivityResult 处理 Activity 之间的数据通信

如何在新的 ActivityResult API (1.3.0-alpha05) 中获取权限请求?

裁剪图像 Android Kotlin

Android Canceling Crop 不返回活动结果

Activity Result API 动态申请Android权限