发生原因:
自己项目依赖了库A和库B,库A依赖了库a,库B依赖了库b
但a和b各自有一个类,这两个类拥有完全相同类名(完全相同指的是连该类所处的包名也一样),这时候,Duplicate class的错误就会发生
解决方法:
- terminal里输入gradlew app:dependencies回车,即可打印出项目的所有依赖关系
- terminal里右键-find,搜索xxxx,即可发现是哪些库重复依赖了;
- 用exclude对依赖进行排除即可;
示例:
错误信息:
Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.1) and classes.jar (com.android.support:support-compat:27.0.2)
exclude用法:
implementation('com.google.android.exoplayer:exoplayer:2.11.7'){
exclude group: 'androidx.core' , module : 'core'
exclude group: 'androidx.media' , module : 'media'
}
网友评论