2016-11-29 50 views
9

構建項目並將應用程序部署到具有API級別22或25的模擬器可以,但是當我嘗試構建APK或將應用程序部署到我的與API級真實設備16我得到以下錯誤:Android多個dex文件定義了Lcom/google/android/gms/common/api/zza

Error:Execution failed for task ':app:transformClassesWithDexForDebug'. 
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/common/api/zza; 

我的項目的build.gradle文件:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.2.2' 
     classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
     classpath 'me.tatarka:gradle-retrolambda:3.3.0-beta4' 
     classpath 'com.google.gms:google-services:3.0.0' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

我的應用程序的build.gradle文件:

apply plugin: 'com.android.application' 
apply plugin: 'com.neenbedankt.android-apt' 
apply plugin: 'me.tatarka.retrolambda' 
apply plugin: 'com.google.gms.google-services' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.1" 
    defaultConfig { 
     applicationId "<aplication id here>" 
     minSdkVersion 16 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
     vectorDrawables.useSupportLibrary = true 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_8 
     targetCompatibility JavaVersion.VERSION_1_8 
    } 

} 

dependencies { 

    final SUPPORT_LIBRARY_VERSION = '25.0.1' 
    final DAGGER_VERSION = '2.4' 
    final BUTTERKNIFE_VERSION = '8.0.1' 
    final TIMBER_VERISON = '4.3.0' 
    final LEAKCANARY_VERSION = '1.4' 
    final FIREBASE_VERSION = '10.0.0' 
    final FIREBASE_UI_VERSION = '1.0.0' 

    compile fileTree(dir: 'libs', include: ['*.jar']) 

    compile "com.android.support:appcompat-v7:$SUPPORT_LIBRARY_VERSION" 
    compile "com.android.support:design:$SUPPORT_LIBRARY_VERSION" 
    compile "com.android.support:recyclerview-v7:$SUPPORT_LIBRARY_VERSION" 
    compile "com.android.support:cardview-v7:$SUPPORT_LIBRARY_VERSION" 
    compile "com.android.support:support-v4:$SUPPORT_LIBRARY_VERSION" 
    compile "com.android.support:support-vector-drawable:$SUPPORT_LIBRARY_VERSION" 

    compile "com.google.dagger:dagger:$DAGGER_VERSION" 
    apt "com.google.dagger:dagger-compiler:$DAGGER_VERSION" 

    compile "com.google.firebase:firebase-database:$FIREBASE_VERSION" 
    compile "com.firebaseui:firebase-ui-database:$FIREBASE_UI_VERSION" 

    compile "com.jakewharton:butterknife:$BUTTERKNIFE_VERSION" 
    apt "com.jakewharton:butterknife-compiler:$BUTTERKNIFE_VERSION" 

    compile "com.jakewharton.timber:timber:$TIMBER_VERISON" 

    debugCompile "com.squareup.leakcanary:leakcanary-android:$LEAKCANARY_VERSION" 

    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 

    testCompile 'junit:junit:4.12' 
} 

注:如果我的 「multiDexEnabled真正的」 行添加到我的defaultConfig我會得到以下錯誤:

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

回答

18

移動這樣的:

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

to the bottom你的app/build.gradle文件。

+0

解決了我的問題。謝謝! – Sleepwalker

+2

我不相信它會起作用,但確實如此。謝謝 –

0

雖然我有同樣的錯誤,但上述解決方案不適合我。我設法從降級2.0.0我的火力點,UI庫版本1.2.0解決了錯誤,並添加以下到項目一級的build.gradle文件:

allprojects { 
    repositories { 
     jcenter() 

     // Add the following 
     maven { 
      url 'https://maven.fabric.io/public' 
     } 
    } 
} 
-1

對我來說,我只是更新火力庫最新版本,它只是工作

相關問題