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

Хотя у меня была такая же ошибка, но вышеупомянутое решение не сработало для меня. Мне удалось решить эту ошибку, понижая мою firebase-UI версии библиотеки от 2.0.0 до 1.2.0 и добавил следующий к проекту уровня build.gradle файл:

allprojects { 
    repositories { 
     jcenter() 

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

для меня, я просто обновить firebase библиотеки для новейшая версия, и она просто сработала

Смежные вопросы