2016-01-22 70 views
2

在磁盘发生故障后重新安装Android Studio之后,我更新了项目的依赖关系以反映API 21.这引入了multiDex的使用,因此我的build.gradle现在包含:TransformException GoogleCloudMessaging的重复条目

compileSdkVersion 21 
buildToolsVersion '21.1.2' 
defaultConfig { 
    minSdkVersion 17 
    targetSdkVersion 21 
    multiDexEnabled true 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile ('com.android.support:support-v4:21.0.3') { 
     exclude group: 'com.google.android.gms' 
    } 
    compile ('com.android.support:appcompat-v7:21.0.3') { 
     exclude group: 'com.google.android.gms' 
    } 
    compile ('com.android.support:multidex:1.0.0') { 
     exclude group: 'com.google.android.gms' 
    } 
    compile 'com.google.android.gms:play-services-gcm:7.+' 
    compile files('libs/android-async-http-1.4.4.jar') 
} 

请注意我不想在此阶段更新到API 23,以便与姐妹应用程序保持一致。

我不断收到以下错误,当我尝试建立:

执行失败的任务“:应用程序:transformClassesWithJarMergingForDebug”。 com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复的条目:COM /谷歌/安卓/ GMS/GCM/Google云端通讯$ 1.class

我加入了“排除组'只有在尝试解决重复时才依赖于依赖关系。

清理项目没有什么区别(我试过了终端和Studio菜单)。

./gradlew app:dependencies的输出如下:

+--- com.android.support:multidex:1.0.1 
+--- com.android.support:support-v4:21.0.3 -> 22.2.0 
| \--- com.android.support:support-annotations:22.2.0 
+--- com.android.support:appcompat-v7:21.0.3 
| \--- com.android.support:support-v4:21.0.3 -> 22.2.0 (*) 
+--- com.android.support:multidex:1.0.0 -> 1.0.1 
\--- com.google.android.gms:play-services-gcm:7.+ -> 7.8.0 
    \--- com.google.android.gms:play-services-base:7.8.0 
      \--- com.android.support:support-v4:22.2.0 (*) 

道歉,如果这是另一个问题SO重复,但我看其他问题,他们并没有帮助,因为我不能请参阅重复引入的位置。任何人都可以告诉我重复的来源吗?

回答

0

发现它,只是为了尝试帮助,如果其他人看到类似的东西... 这是一个项目,已从Eclipse导入到Studio中,并且在libs文件夹中仍有一个Google Play Services jar,因此与gradle依赖关系的冲突。 虽然我不能从Studio界面上看到jar,但我不得不直接看文件夹,而这只是multiDex的引入而产生了一个错误。

+0

我也面临同样的问题,请检查链接http://stackoverflow.com/questions/37874487/java-util-zip-zipexception-duplicate-entrycom-google-android-gms-auth-userreco – kavie