2017-02-09 41 views
3

我正在從Eclipse項目轉換到Android Studio。這並不容易。我試圖放置AdMob橫幅,並得到了這樣的錯誤。Android說重複的項目,但它不是

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/android/gms/ads/identifier/AdvertisingIdClient$zza.class

項目中只有1 AdvertisingIdClient$zza.class文件。
爲什麼我得到這個錯誤?
我已經花了很多時間在這個上,但沒有線索。
任何人都可以幫助我嗎?


感謝您的回覆。這是我的gradle文件。

APP-gradle這個>>>>

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 13 
    buildToolsVersion "25.0.2" 

    defaultConfig { 
     applicationId "sw.ko.aaaaa.bbbbb" 
     minSdkVersion 9 
     targetSdkVersion 9 
     multiDexEnabled true 
    } 

    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles 'proguard.cfg' 
     } 
    } 
} 

dependencies { 
    compile files('libs/activation.jar') 
    compile files('libs/additionnal.jar') 
    compile files('libs/commons-email-1.2.jar') 
    compile files('libs/commons-net-2.0.jar') 
    compile files('libs/google-play-services.jar') 
    compile files('libs/mail.jar') 
    compile files('libs/twitter4j-core-android-2.2.5.jar') 
} 

apply plugin: 'com.google.gms.google-services' 

另一個gradle這個文件是...

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.2.3' 
     classpath 'com.google.gms:google-services:3.0.0' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

外部庫...

Android API 13 Platform 
1.8 
firebase-analytics-9.0.0 
firebase-analytics-impl-9.0.0 
firebase-common-9.0.0 
firebase-core-9.0.0 
firebase-iid-9.0.0 
multidex-1.0.1 
multidex-instrumentation-1.0.1 
play-services-base-9.0.0 
play-services-basement-9.0.0 
play-services-tasks-9.0.0 
support-v4-23.0.0 
+0

這通常是因爲您使用兩個庫都具有共享依賴關係,所以它會嘗試將它們添加到已編譯的應用程序中。看到這個問題的更多細節:http://stackoverflow.com/a/39388746/3061857 – nbokmans

+0

有相同的各種SO鏈接,但從我個人的經驗,當我嘗試遷移它是地獄。嘗試了一個星期後。我放棄。創建了新的Andriod Studio項目,並將代碼從eclipse複製到需要的地方。 –

+0

你需要顯示你的'build.gradle'。 –

回答

1

刪除對谷歌播放的所有引用服務(JAR文件和其他Gradle線)

添加這一個AdMob聯播

dependencies { 
    ... 

    compile 'com.google.android.gms:play-services-ads:10.0.1' 
} 

添加更多的依賴於other GoogleFirebase服務。


我寧願這樣做,以保持所有版本相同。

ext { 
    // Variables to keep libraries consistent 
    googlePlayServicesVersion = '10.0.1' 
} 

dependencies { 
    ... 

    compile "com.google.android.gms:play-services-ads:${googlePlayServicesVersion}" 
} 
+0

我試過你的第二個建議,它工作!非常感謝。現在我遇到了另一個問題:java.lang.IllegalStateException:在調用loadAd之前,必須設置廣告尺寸和廣告單元ID。無論如何,再次感謝你。 :) –

+0

第二個建議是第一個重構。你只需要刪除'編譯文件('libs/google-play-services.jar')'並且基本上添加其他文件。您可以使用我的答案旁邊的複選標記接受它:) –

相關問題