26

I'm using Android Studio Chipmunk | 2021.2.1 Patch 2.

I get the following error when I use the implementation 'androidx.appcompat:appcompat:1.5.0' version.

Duplicate class androidx.lifecycle.ViewModelLazy found in modules lifecycle-viewmodel-2.5.0-runtime (androidx.lifecycle:lifecycle-viewmodel:2.5.0) and lifecycle-viewmodel-ktx-2.3.1-runtime (androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1) Duplicate class androidx.lifecycle.ViewTreeViewModelKt found in modules lifecycle-viewmodel-2.5.0-runtime (androidx.lifecycle:lifecycle-viewmodel:2.5.0) and lifecycle-viewmodel-ktx-2.3.1-runtime (androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1)

It works fine after rolling back to the previous implementation 'androidx.appcompat:appcompat:1.4.2' version.

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"
}

Can anyone help with similar error?

Thanks.

Halil Ozel
  • 2,482
  • 3
  • 17
  • 32
  • It is a duplicate question. I found answer here https://stackoverflow.com/a/69832319/6825983 – Zeghra Sep 05 '22 at 14:50
  • @Zeghra not really, this question is specific to the appCompat dependency, which introduces the issue. The other question is more generic, more for people who introduce the lifecycle dependencies themselves. – hb0 Sep 21 '22 at 07:45

8 Answers8

24

I had the same problem and I solved it by adding only one line of code

implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0'
Halil Ozel
  • 2,482
  • 3
  • 17
  • 32
Imran
  • 241
  • 1
  • 6
14

I had this problem too. Apparently it's a bug specifically for version 1.5.0 having an explicit dependency on Lifecycle 2.3.1 and a transitive dependency on Lifecycle 2.5.0 via Activity 1.5.0. It will be fixed with 1.5.1

Here is the issue tracker reference: https://issuetracker.google.com/issues/242384116

Just roll back to 1.4.2 until it will be fixed.

jiasheng
  • 181
  • 8
10

In my case, solved by add this :

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

source : https://issuetracker.google.com/issues/238425626

Zainal Fahrudin
  • 536
  • 4
  • 23
6

This works well for me

configurations {
    all {
      exclude group: 'androidx.lifecycle', module: 'lifecycle-runtime-ktx'
      exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel-ktx'
    }
  }
Boken
  • 4,825
  • 10
  • 32
  • 42
Steven.Nguyen
  • 1,034
  • 13
  • 14
3

This bug is fixed in AppCompat 1.6.0.
(and if you need androidx.lifecycle:lifecycle-viewmodel-ktx, use 2.5.1 or above)

implementation "androidx.appcompat:appcompat:1.6.0"

The issue description is here: https://issuetracker.google.com/issues/242384116.

Issue description excerpt:

This was caused by AppCompat 1.5.0 having an explicit dependency on Lifecycle 2.3.1 and a transitive dependency on Lifecycle 2.5.0 via Activity 1.5.0.

Since AppCompat 1.6.0-beta01, it now depends explicitly on Lifecycle 2.5.1 so this is no longer an issue. We can backport these bumps into an AppCompat 1.5.1 as well.

Note:
Using kotlin version '1.7.20'

Pascal
  • 15,257
  • 2
  • 52
  • 65
2

Finally, This problem was solved.

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'

...

For more details:

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

Halil Ozel
  • 2,482
  • 3
  • 17
  • 32
1

I have also this implementation 'androidx.appcompat:appcompat:1.5.0' version

In my case, solved by doing this

First I updated it to version implementation 'androidx.appcompat:appcompat:1.6.0'

Also updated targetSdk and minSdk version to 33

0

This works for me ->

kotlin_version = '1.7.22
appcompat_version = "1.6.0-beta01"
lifecycle_version = "2.5.1"