AS中jar包冲突解决方案

时间:2022-09-21 09:15:25

既然出现了Error:Execution failed for task ‘:app:transformClassesWithDesForDebug’这种jar包冲突的问题,那就讲讲解决方案吧
- 使用exclude
过滤可以很好的解决Android项目中jar包冲突的问题,比如说你的项目中引用了v7,同时又引入了v4,在Android 中v7包默认是包含v4包的,那么就可以使用exclude解决冲突,只需要添加如下代码:

compile ('com.android.support:appcompat-v7:25.2.0'){exclude module: 'support-v4'}

在你创建项目的时候,当你稍微留心一点,你就会发现在项目创建的时候就已经有这样的用法了,比如:

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
  • 使用provided
    假如,在你引入的module和主module中都有v4包,那么你就可以使用provided
    这里讲一下compile和provided的区别
    compile是指项目编译和运行时都需要依赖
    provided是指在项目编译时需要,运行时不需要
    可以在你引入的项目module的build.gradle中添加
dependencies {
provided fileTree(dir: 'libs', include: ['*.jar'])
}
  • 直接删除