java - 我如何#include ActivityResultContracts
问题描述
当我尝试这样做时:
import androidx.activity.result.contract.ActivityResultContracts
Android Studio 抱怨“结果”未定义。
我的 build.gradle 里面有这一行:
implementation 'androidx.appcompat:appcompat:1.2.0'
据我所知,这应该让我可以访问 ActivityResultContracts。我错过了什么?
解决方案
根据从活动文档中获取结果,活动结果 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'
推荐阅读
- javascript - 如何在范围内从ajax成功分配变量
- c# - 如何防止在C#中按下AcceptButton时窗体被关闭
- c# - C# 生成的 RSA 公钥是一个 XML 文件。如何在 PHP 中解密或转换公钥?
- node.js - 为什么浏览器中未设置 res 标头中的 cookie?
- java - 在 Java 11 上从 Maven 运行测试时,由内部类上的 java.lang.ClassNotFoundException 引起的 java.lang.NoClassDefFoundError
- java - 循环不会停止,也不会正确响应模块
- windows - 在非 Linux 操作系统上运行 docker
- memcached - Memcached 客户端是否在内存中保存未使用的键?
- c# - 多个 .cs 文件访问一个窗体
- java - 如何在 Android Studio Java 中执行代码之前延迟