在模块 lifecycle-viewmodel-2.5.0-runtime 中找到重复类 androidx.lifecycle.ViewModelLazy

Duplicate class androidx.lifecycle.ViewModelLazy found in modules lifecycle-viewmodel-2.5.0-runtime

提问人:Halil Ozel 提问时间:8/19/2022 最后编辑:Halil Ozel 更新时间:9/28/2023 访问量:14814

问:

我正在使用 Android Studio 花栗鼠 | 2021.2.1 补丁 2。

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

在模块中找到重复类 androidx.lifecycle.ViewModelLazy 生命周期视图模型 2.5.0-运行时 (androidx.lifecycle:lifecycle-viewmodel:2.5.0) 和 生命周期视图模型-ktx-2.3.1-运行时 (androidx.lifecycle:生命周期视图模型-ktx:2.3.1)重复类 androidx.lifecycle.ViewTreeViewModelKt 在模块中找到 生命周期视图模型 2.5.0-运行时 (androidx.lifecycle:lifecycle-viewmodel:2.5.0) 和 生命周期视图模型-ktx-2.3.1-运行时 (androidx.lifecycle:生命周期视图模型-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-gradle-plugin 依赖 build.gradle

评论

0赞 Zeghra 9/5/2022
这是一个重复的问题。我在这里找到了答案 stackoverflow.com/a/69832319/6825983
0赞 hb0 9/21/2022
@Zeghra并非如此,这个问题特定于 appCompat 依赖项,它引入了这个问题。另一个问题更通用,更适合那些自己引入生命周期依赖关系的人。

答:

14赞 jiasheng 8/25/2022 #1

我也有这个问题。显然,这是一个专门针对版本 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 即可,直到它被修复。

评论

11赞 Panther 9/15/2022
对我来说,它没有针对 1.5.1 进行修复
3赞 jiasheng 9/20/2022
我确认 1.5.1 没有解决问题......
1赞 hb0 9/21/2022
将 appcompat 升级到 1.6.0-rc1 时已修复(1.5.1 不起作用)。
26赞 Imran 9/10/2022 #2

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

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

评论

0赞 Justin Liu 11/18/2022
为我工作。按照其他地方的建议降级到 1.4.2 对我不起作用。谢谢!
0赞 Madhav 12/28/2022
我在 react native 应用程序中遇到了类似的问题,通过添加此依赖项解决了这个问题。
10赞 Zainal Fahrudin 9/12/2022 #3

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

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

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

评论

1赞 Halil Ozel 9/22/2022
我没有在我的项目中使用 ViewModel 没用,为什么要添加库?
0赞 Vikash Kumar Tiwari 9/25/2022
这似乎是一个临时解决方案。
2赞 Halil Ozel 9/14/2022 #4

终于,这个问题得到了解决。

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

评论

5赞 Panther 9/15/2022
我仍然在 1.5.1 中遇到相同的错误
0赞 Halil Ozel 9/15/2022
我更新了我的解决方案。你能检查一下吗?@Panther
0赞 Panther 9/16/2022
实现 androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1
0赞 Panther 9/16/2022
这已经对我有用了
0赞 hb0 9/21/2022
将 appcompat 升级到 1.6.0-rc1 时已修复(1.5.1 对我不起作用)。
6赞 Steven.Nguyen 10/4/2022 #5

这对我来说很有效

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

评论

0赞 Elfnan Sherif 11/20/2022
请向我明确,将其添加到android{}块或dependencies{}块中
2赞 Steven.Nguyen 11/21/2022
在 android{} 块内 :D
0赞 Aryo 7/17/2023
模块级文件,位于块内。build.gradleandroid{}
0赞 Mehdi Samavat 1/10/2023 #6

这对我有用 ->

kotlin_version = '1.7.22
appcompat_version = "1.6.0-beta01"
lifecycle_version = "2.5.1"
3赞 Pascal 1/25/2023 #7

此错误已在 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”

1赞 Jasol Singh Sodha 2/8/2023 #8

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

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

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

还将 targetSdk 和 minSdk 版本更新为 33

评论

1赞 Moritz Ringler 2/14/2023
已经有建议不要使用 1.5.0 的答案