在模块生命周期-viewmodel-2.5.0-runtime中发现重复的类 androidx.lifecycle.ViewModelLazy

Hal*_*zel 26 dependencies android build.gradle android-gradle-plugin

我正在使用Android Studio Chipmunk | 2021.2.1 补丁 2。

当我使用该implementation 'androidx.appcompat:appcompat:1.5.0'版本时,出现以下错误。

在模块生命周期-viewmodel-2.5.0-runtime(androidx.lifecycle:lifecycle-viewmodel:2.5.0)和生命周期-viewmodel-ktx-2.3.1-runtime(androidx.lifecycle:lifecycle)中发现重复的类androidx.lifecycle.ViewModelLazy -viewmodel-ktx:2.3.1)在模块lifecycle-viewmodel-2.5.0-runtime(androidx.lifecycle:lifecycle-viewmodel:2.5.0)和lifecycle-viewmodel-ktx-2.3中找到重复的类androidx.lifecycle.ViewTreeViewModelKt。 1-运行时(androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1)

回滚到之前的implementation 'androidx.appcompat:appcompat:1.4.2'版本后就可以正常使用了。

build.gradle

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-kapt'
}

android {
    compileSdk 32

    defaultConfig {
        applicationId "com.halil.ozel.darkmode"
        minSdk 28
        targetSdk 32
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
    buildFeatures {
        dataBinding true
    }
}

dependencies {
    implementation 'androidx.core:core-ktx:1.8.0'
    implementation 'androidx.appcompat:appcompat:1.4.2'
    implementation 'com.google.android.material:material:1.6.1'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'

    // Preference
    implementation "androidx.preference:preference-ktx:1.2.0"
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助解决类似的错误吗?

谢谢。

小智 26

我遇到了同样的问题,我只添加一行代码就解决了

implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0'
Run Code Online (Sandbox Code Playgroud)


jia*_*eng 14

我也有这个问题。显然,这是一个专门针对版本 1.5.0 的错误,它显式依赖于 Lifecycle 2.3.1,并通过 Activity 1.5.0 传递依赖于 Lifecycle 2.5.0。它将在 1.5.1 中修复

这是问题跟踪器参考:https://issuetracker.google.com/issues/242384116

只需回滚到 1.4.2 直至修复即可。

  • 对我来说,1.5.1 还没有修复 (12认同)
  • 我确认 1.5.1 没有解决这个问题... (3认同)

Zai*_*din 10

就我而言,通过添加以下内容解决:

api "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1" 
Run Code Online (Sandbox Code Playgroud)

来源: https: //issuetracker.google.com/issues/238425626


Ste*_*yen 6

这对我来说很有效

configurations {
    all {
      exclude group: 'androidx.lifecycle', module: 'lifecycle-runtime-ktx'
      exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel-ktx'
    }
  }
Run Code Online (Sandbox Code Playgroud)

  • 在 android{} 块内:D (2认同)

Hal*_*zel 2

最后,这个问题就解决了。

build.gradle(project)

buildscript {
    ext.kotlin_version = '1.7.10'
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.2.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Run Code Online (Sandbox Code Playgroud)

build.gradle(app)

...
android {
    compileSdkVersion 33
    defaultConfig {
        applicationId "com.halil.ozel.catchthefruits"
        minSdkVersion 21
        targetSdkVersion 33
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    buildFeatures {
        dataBinding true
    }
}

...

implementation 'androidx.appcompat:appcompat:1.5.1'

...
Run Code Online (Sandbox Code Playgroud)

更多细节:

https://developer.android.com/jetpack/androidx/releases/appcompat

  • 我在 1.5.1 中仍然遇到同样的错误 (5认同)