美文网首页
Android开发:最新版gradle构建APP报Duplica

Android开发:最新版gradle构建APP报Duplica

作者: 因为我的心 | 来源:发表于2023-07-11 15:30 被阅读0次

1、问题描述

最近把gradle升级到了7.4版本,然后新创建一个应用,直接构建报Duplicate class错误,具体如下:

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)

2、解决方案

查看发现是7.4版的gradle初始化应用时部分库使用了最新版本导致了类的重复导入,其实自己手动去升级这几个库也会导致同样的问题。

implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.7.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'

因此可以将对应的库降低版本或者导入时去掉重复的类:

dependencies {
    configurations {
        all {
            //在这个例子中,exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel-ktx' 的意思是排除 androidx.lifecycle:lifecycle-viewmodel-ktx 这个库的依赖。
            exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel-ktx'
        }
    }
 
    implementation 'androidx.appcompat:appcompat:1.5.0'
    implementation 'com.google.android.material:material:1.7.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
}

移除的jar包

 //lifecycle
api 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0'
// viewModel
api "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0"

相关文章

网友评论

      本文标题:Android开发:最新版gradle构建APP报Duplica

      本文链接:https://www.haomeiwen.com/subject/eztuudtx.html