2016-02-27 141 views
0
dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 

    compile('com.google.android.gms:play-services-gcm:8.4.0') { 
     exclude group: 'com.android.support', module: 'support-v4' 
     exclude group: 'com.google.android.gms' 
    } 
    compile ('com.google.android.gms:play-services-base:8.4.0') { 
     exclude group: 'com.android.support', module: 'support-v4' 
     exclude group: 'com.google.android.gms' 
    } 

    compile('com.android.support:appcompat-v7:23.2.0') { 
     exclude module: 'animated-vector-drawable' 
    } 

    compile 'com.jakewharton:butterknife:7.0.1' 
    compile 'se.emilsjolander:stickylistheaders:2.7.0' 
    compile 'com.google.code.gson:gson:2.5' 
    compile('com.koushikdutta.ion:ion:2.+') { 
     exclude module: 'gson' 
    } 
    compile 'com.github.JakeWharton:ViewPagerIndicator:[email protected]' 
    compile 'com.github.androidprogresslayout:library:[email protected]' 
    compile 'com.squareup.picasso:picasso:2.5.2' 
    compile 'com.nineoldandroids:library:2.4.0' 
    compile 'com.daimajia.slider:library:[email protected]' 
} 

但每次我得到这个错误:摇篮错误:执行失败的任务 ':应用程序:transformClassesWithJarMergingForDebug'

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. 
> com.android.build.api.transform.TransformException: 
    java.util.zip.ZipException: 
     duplicate entry: android/support/v4/widget/SimpleCursorAdapter$CursorToStringConverter.class 

下面是gradlew -q dependencies App:dependencies --configuration compile结果:

enter image description here

从底部,你可以看到,我还没有添加com.google.android.gms:play-services-measurement库,但它显示没有理由?

找到了解决办法

我的gradle检查的控制台,而其德兴的依赖,我看到了;

Dexing \app\build\intermediates\exploded-aar\com.github.JakeWharton\ViewPagerIndicator\2.4.1\jars\libs\android-support-v4.jar took 1499 

哪个是最旧的support-v4 lib作为jar添加的。我已经从build.gradle中删除了ViewPagerIndicator依赖项,并手动添加它的类。

现在最奇怪的问题解决了。

+1

您是否使用了一些罐子? –

+0

@GabrieleMariotti其实我没有使用任何罐子。但不知何故,我创建了一个新的空项目,并将类和res文件复制到新项目中。虽然gradle是德兴,我看到Dexing \ app \ build \ intermediates \ exploded-aar \ com.github.JakeWharton \ ViewPagerIndicator \ 2.4.1 \ jars \ libs \ android-support-v4.jar花了1499年 这是添加支持-v4罐最老的一个。我从依赖项列表中删除了viewpagerindicator lib并手动添加了它的类。现在奇怪的问题解决了。 –

+0

这并不奇怪。您使用两次不同的版本添加了同一个类 –

回答

2

您正在添加两倍的支持库v4。

这是因为你使用

compile 'com.github.JakeWharton:ViewPagerIndicator:[email protected]' 

你得到从jitpack这个库。
This library将支持库添加为jar而不是gradle依赖项。

这意味着pom文件没有依赖关系,并且您不能使用gradle排除jar文件,因为该jar文件位于aar文件中(没有pom,gradle如何知道应该排除这些文件? )。

您可以查看文件的jitpack回购:

+0

我不知道。非常感谢你的解释,下次我会小心为这类问题添加依赖关系。 –

相关问题