首页 > 解决方案 > 我如何#include ActivityResultContracts

问题描述

当我尝试这样做时:

import androidx.activity.result.contract.ActivityResultContracts

Android Studio 抱怨“结果”未定义。

我的 build.gradle 里面有这一行:

implementation 'androidx.appcompat:appcompat:1.2.0'

据我所知,这应该让我可以访问 ActivityResultContracts。我错过了什么?

标签: javaandroidandroid-studioandroid-permissions

解决方案


根据从活动文档中获取结果,活动结果 API 仅在活动 1.2.0 和片段 1.3.0 中引入。AppCompat 1.2.0 仅传递依赖于 Fragment 1.1.0,而 Fragment 又仅依赖于 Activity 1.0.0。这意味着您没有足够新的 Fragments 和 Activity 版本来访问 Activity Result API。

因此,您可以升级您的 AppCompat 版本(这确实取决于较新版本的 Fragment 和 Activity):

implementation 'androidx.appcompat:appcompat:1.3.0-alpha02'

或者添加一个专门针对 Fragment 的附加依赖项(它会引入正确版本的 Activity):

implementation 'androidx.fragment:fragment-ktx:1.3.0-beta01'

推荐阅读