2016-11-29 114 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

对我来说,我只是更新火力库最新版本,它只是工作

相关问题