我如何#include ActivityResultContracts
How do I #include ActivityResultContracts
当我尝试这样做时:
import androidx.activity.result.contract.ActivityResultContracts
Android Studio 抱怨“结果”未定义。
我的 build.gradle 中有这一行:
implementation 'androidx.appcompat:appcompat:1.2.0'
据我所知,这应该能让我访问 ActivityResultContracts。我错过了什么?
原来我误解了我得到的信息。 build.gradle 中的实现行需要改为此行。
implementation 'androidx.activity:activity-ktx:1.2.0-beta01'
根据 Getting a result from an activity documentation,Activity 结果 API 仅在 Activity 1.2.0 和 Fragment 1.3.0 中引入。 AppCompat 1.2.0 仅传递依赖于 Fragment 1.1.0,而后者又仅依赖于 Activity 1.0.0。这意味着您没有足够新的 Fragments 和 Activity 版本来访问 Activity 结果 APIs.
因此您可以升级您的 AppCompat 版本( 取决于更新版本的 Fragment 和 Activity):
implementation 'androidx.appcompat:appcompat:1.3.0-alpha02'
或者添加一个专门针对 Fragment 的附加依赖项(它会引入 Activity 的正确版本):
implementation 'androidx.fragment:fragment-ktx:1.3.0-beta01'
当我尝试这样做时:
import androidx.activity.result.contract.ActivityResultContracts
Android Studio 抱怨“结果”未定义。
我的 build.gradle 中有这一行:
implementation 'androidx.appcompat:appcompat:1.2.0'
据我所知,这应该能让我访问 ActivityResultContracts。我错过了什么?
原来我误解了我得到的信息。 build.gradle 中的实现行需要改为此行。
implementation 'androidx.activity:activity-ktx:1.2.0-beta01'
根据 Getting a result from an activity documentation,Activity 结果 API 仅在 Activity 1.2.0 和 Fragment 1.3.0 中引入。 AppCompat 1.2.0 仅传递依赖于 Fragment 1.1.0,而后者又仅依赖于 Activity 1.0.0。这意味着您没有足够新的 Fragments 和 Activity 版本来访问 Activity 结果 APIs.
因此您可以升级您的 AppCompat 版本( 取决于更新版本的 Fragment 和 Activity):
implementation 'androidx.appcompat:appcompat:1.3.0-alpha02'
或者添加一个专门针对 Fragment 的附加依赖项(它会引入 Activity 的正确版本):
implementation 'androidx.fragment:fragment-ktx:1.3.0-beta01'