web-dev-qa-db-ja.com

Android複数のdexファイルがLcom / google / Android / gms / common / api / zzaを定義します

プロジェクトをビルドし、APIレベル22または25でエミュレーターにアプリをデプロイすることは問題ありませんが、APKをビルドするか、APIレベル16で実際のデバイスにアプリをデプロイしようとすると、次のエラーが発生します。

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'
}

注:「multiDexEnabledtrue」行を自分の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
10
oleg.v

これを移動します:

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

一番下まで app /build.gradleファイルの。

18
Bob Snyder

これはおそらく元の質問には当てはまりませんが、他の誰かを助ける場合に備えて。 ionic v1プロジェクトでこのエラーが発生しました。firebaseは使用していませんが、 この回答 (簡単に修正できます-すべてを標準化してください)で修正しましたGoogleサービスのバージョンはAndroid/project.propertiesで同じになります)

0
John Tyner

私の場合、Firebaseライブラリを最新バージョンに更新するだけで、機能しました

0
Fajar Ulin Nuha

同じエラーが発生しましたが、上記の解決策は機能しませんでした。 firebase-uiライブラリのバージョンを2.0.0から1.2.0にダウングレードし、プロジェクトレベルのbuild.gradleファイルに以下を追加することで、エラーを解決することができました。

allprojects {
    repositories {
        jcenter()

        // Add the following
        maven {
            url 'https://maven.fabric.io/public'
        }
    }
}
0
Darush