无法访问 'androidx.activity.result.ActivityResultCaller'

Cannot access 'androidx.activity.result.ActivityResultCaller'

我使用 androidx 有一段时间了,我的 Android 项目编译得很好,但是最近我的 Android Studio 为所有人抛出了大量的红色Activity 类

因为

cannot access 'androidx.activity.result.ActivityResultCaller' which is a supertype of ...

我用

AppCompatActivity 来自 androidx.appcompat:appcompat:1.1.0

我的build.gradle有:

    ext.kotlin_version = '1.3.71'
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.3'
        classpath 'com.google.gms:google-services:4.3.3'

gradle版本 distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip

我的gradle.properties:

android.useAndroidX=true
android.enableJetifier=true
org.gradle.jvmargs=-Xmx4608m
org.gradle.parallel=true

# Use kapt in parallel
kapt.use.worker.api=true

# Kapt compile avoidance
kapt.include.compile.classpath=false

发生这种情况是因为Gradle解决依赖库版本升级androidx.core:core到1.2.0以上的版本,可能是1.3.0-beta01或1.3.0-rc01

AppCompatActivity 扩展 FragmentActivity 延伸 ComponentActivity 延伸 androidx.core.app.ComponentActivity 实现 ActivityResultCaller 仅在 androidx.activity:activity:1.2.0-alpha03 中引入。

要解决此问题,请将此依赖项添加到您的 模块 build.gradle:

dependencies {
      implementation "androidx.activity:activity-ktx:1.2.0-alpha03"
}

就我而言,我需要删除 implementation 'androidx.appcompat:appcompat:1.3.0-alpha01',同时保留 implementation "androidx.core:core-ktx:1.3.1"

就我而言,我的 core/base 和应用程序模块之间的 androidx.activity:activity-ktx gradle 依赖关系存在冲突。

除了 ActivityResultCaller,我的 ActivityResultRegistryOwner.

也出现了问题

对我来说,从应用程序模块中删除依赖项,将核心模块依赖项推送到 androidx.activity:activity-ktx:1.2.0-alpha04 并增加 implementation "androidx.core:core-ktx:1.3.0 > 1.3.1 解决了这两个问题。

我在核心中也有一个 androidx.appcompat:appcompat:1.3.0-alpha01 依赖项,我保留了它,但似乎删除它没有任何效果。