更新到9.4.0后,Android Studio Gradle错误

时间:2016-10-06 09:42:11

标签: android firebase google-api google-play-services build.gradle

更新到新的Firebase版本后,我遇到以下错误。我一直在寻找,显然我必须删除一些jar文件,但我似乎无法理解删除这些导致冲突的文件的位置。

错误如下。

Error:Uncaught translation error: java.lang.IllegalArgumentException:
already added: Lcom/google/android/gms/internal/zzml;

Error:Uncaught translation error: java.lang.IllegalArgumentException: 
already added: Lcom/google/android/gms/internal/zzmm;

Error:Uncaught translation error: java.lang.IllegalArgumentException:
already added: Lcom/google/android/gms/internal/zzmn;

Error:Uncaught translation error: java.lang.IllegalArgumentException:
already added: Lcom/google/android/gms/internal/zzmo;

Error:Uncaught translation error: java.lang.IllegalArgumentException: 
already added: Lcom/google/android/gms/internal/zzmp;

Error:Uncaught translation error: java.lang.IllegalArgumentException: 
already added: Lcom/google/android/gms/internal/zzmq;

Error:Uncaught translation error: java.lang.IllegalArgumentException:
already added: Lcom/google/android/gms/internal/zzmr;

Error:7 errors; aborting
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.ide.common.process.ProcessException:返回码1用于dex进程

Gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

defaultConfig {
    minSdkVersion 16
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
dexOptions {
    preDexLibraries = false
}
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.android.support:support-v4:23.3.0'
    compile 'com.android.support:design:23.3.0'
    compile 'com.loopj.android:android-async-http:1.4.9'
    ///firebase////
    compile 'com.google.firebase:firebase-core:9.4.0'
    compile 'com.google.firebase:firebase-database:9.4.0'
    compile 'com.google.firebase:firebase-storage:9.4.0'
    compile 'com.google.firebase:firebase-crash:9.4.0'
    compile 'com.google.firebase:firebase-auth:9.4.0'
    compile 'com.google.firebase:firebase-messaging:9.4.0'
    compile 'com.google.firebase:firebase-invites:9.4.0'
    compile 'com.google.android.gms:play-services-appindexing:9.4.0'

    //# Single target that includes all FirebaseUI libraries
    compile 'com.firebaseui:firebase-ui:0.4.0'
    compile 'joda-time:joda-time:2.9.4'

    compile 'com.fasterxml.jackson.core:jackson-annotations:2.7.2'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'de.hdodenhof:circleimageview:2.1.0'

    compile 'org.apache.commons:commons-lang3:3.4'

    //compile 'io.github.rockerhieu:emojicon:1.4.1'

    compile 'com.github.lzyzsd:circleprogress:1.1.0@aar'
}
apply plugin: 'com.google.gms.google-services'

这是Project Gradle。

// Top-level build file where you can add configuration options common to all sub-projects/modules.

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

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

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

2 个答案:

答案 0 :(得分:1)

答案是 app.gradle 的正确依赖关系是:

      category  date            number
0      Cat1     2010-03-01      1
1      Cat2     2010-09-01      1
2      Cat3     2010-10-01      1
3      Cat4     2010-12-01      1
4      Cat5     2012-04-01      1
5      Cat2     2013-02-01      1
6      Cat3     2013-07-01      1
7      Cat4     2013-11-01      2
8      Cat5     2014-11-01      5
9      Cat2     2015-01-01      1
10     Cat3     2015-03-01      1

来自firebase的所有服务都需要这种依赖关系,这一个: compile' com.google.android.gms:play-services-appindexing:9.4.0' ,我想只是添加应用程序索引gms服务,您需要所有包。试试这个变化并告诉我这个,问候!

答案 1 :(得分:1)

看到你有很多依赖项,我认为这可能与MultiDex问题有关,这意味着你的项目有超过64K的方法。因此,您需要启用MultiDex才能拥有超过64k

您可以通过将以下内容添加到模块级build.gradle

来启用它
android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 21
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.android.support:multidex:1.0.0'
}

然后,如果您已有应用程序类,则创建一个MultiDexApplication类或从MutliDexApplication扩展。

不要忘记将其添加到Manifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>