【问题标题】:Android Studio Gradle errors after updating to 9.4.0更新到 9.4.0 后的 Android Studio Gradle 错误
【发布时间】:2016-10-06 09:42:11
【问题描述】:

更新到新的 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'

这是项目 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
}

【问题讨论】:

  • 向我们展示你的 gradle 文件,谢谢
  • @MerlíEscarpenterPérez 请查看新编辑。
  • 你能告诉我 project.gradle 吗?
  • @MerlíEscarpenterPérez 查看新编辑。

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


【解决方案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>

【讨论】:

  • 好的,更新grandle和manifest后,我的类找不到"import com.example.myapp.R"。如何扩展 MultiDexApplication?哪些类扩展了它?
  • 尝试cleanrebuild你的项目
【解决方案2】:

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

compile 'com.google.android.gms:play-services:9.6.1'
compile 'com.google.firebase:firebase-core:9.6.1'

firebase 的所有服务都需要这个依赖项,这个:compile 'com.google.android.gms:play-services-appindexing:9.4.0',我想只是添加应用索引 gms服务,你需要所有的包。试试这个改变,告诉我这个,问候!

【讨论】:

  • 添加并更改为 9.61 版后确定。我现在得到一个错误。错误:.dex 文件中的方法引用数不能超过 64K。在developer.android.com/tools/building/multidex.html 了解如何解决此问题
  • 这个是用于multidex的,但是你的依赖现在是正确的:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-12
  • 2016-03-11
  • 2017-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-04
相关资源
最近更新 更多