2016-01-22 71 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