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

问题描述 投票:0回答:8

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

当我使用

implementation 'androidx.appcompat:appcompat:1.5.0'
版本时,出现以下错误。

在模块中发现重复的类 androidx.lifecycle.ViewModelLazy 生命周期-viewmodel-2.5.0-运行时 (androidx.lifecycle:lifecycle-viewmodel:2.5.0) 和 生命周期-viewmodel-ktx-2.3.1-运行时 (androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1) 重复类 在模块中找到 androidx.lifecycle.ViewTreeViewModelKt 生命周期-viewmodel-2.5.0-运行时 (androidx.lifecycle:lifecycle-viewmodel:2.5.0) 和 生命周期-viewmodel-ktx-2.3.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"
}

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

谢谢。

android android-gradle-plugin dependencies build.gradle
8个回答
25
投票

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

implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0'

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,直到修复为止。


10
投票

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

api "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1" 

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


6
投票

这对我来说效果很好

configurations {
    all {
      exclude group: 'androidx.lifecycle', module: 'lifecycle-runtime-ktx'
      exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel-ktx'
    }
  }

3
投票

此错误已在 AppCompat 1.6.0 中修复
(如果您需要 androidx.lifecycle:lifecycle-viewmodel-ktx,请使用 2.5.1 或更高版本)

implementation "androidx.appcompat:appcompat:1.6.0"

问题描述在这里:https://issuetracker.google.com/issues/242384116

问题描述摘录:

这是由于 AppCompat 1.5.0 显式依赖于 Lifecycle 2.3.1 以及对 Lifecycle 2.5.0 的传递依赖 活动1.5.0.

自 AppCompat 1.6.0-beta01 起,它现在明确依赖于 Lifecycle 2.5.1,因此这不再是问题。我们可以向后移植这些 也遇到了 AppCompat 1.5.1。

注:
使用 kotlin 版本“1.7.20”


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
}

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'

...

欲了解更多详情:

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


1
投票

我也有这个实现'androidx.appcompat:appcompat:1.5.0'版本

就我而言,通过这样做解决了

首先我将其更新为版本实现“androidx.appcompat:appcompat:1.6.0”

还更新了targetSdk和minSdk版本至33


0
投票

这对我有用->

kotlin_version = '1.7.22
appcompat_version = "1.6.0-beta01"
lifecycle_version = "2.5.1"
© www.soinside.com 2019 - 2024. All rights reserved.