当前位置: 首页 > 知识库问答 >
问题:

多个dex文件定义Lcom/google/firebase/FirebaseException

澹台文博
2023-03-14

我遇到了Firebase集成的问题。首先,我在根级别build中添加了规则。渐变文件:

buildscript {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        jcenter()
    }
}

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

和模块梯度文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24"

    defaultConfig {
        applicationId "com.example.app"
        minSdkVersion 14
        targetSdkVersion 24
        versionCode 2
        versionName "0.9"
    }
    buildTypes {
       ///
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.google.firebase:firebase-core:9.0.2'
    compile 'com.google.firebase:firebase-crash:9.0.2'
}

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

在项目的构建过程中,我得到了以下错误:

错误:将字节码转换为dex:Cause:com时出错。Android德克斯。DexException:多个dex文件定义Lcom/google/firebase/FirebaseException;

错误原因很清楚,但我没有编译任何库两次。我是否应该手动从构建过程中排除FirebaseException类?如果是,怎么做?也许这是Firebase依赖项中的一个bug?

谢谢

共有3个答案

终育
2023-03-14

看起来您已达到方法计数限制。尝试删除firebase依赖项并检查应用程序的方法计数(例如,使用此gradle插件(如果不删除这些依赖项,您将无法构建项目,因此,使用方法计数插件)。

如果您的项目中已经存在其中的一些,您可以尝试排除它们:

compile ('com.google.firebase:firebase-core:9.0.2') {
    exclude module: 'play-services-base'
    exclude module: 'support-v4'
    exclude module: 'support-annotations'
}

如果这没有帮助,那么您可能需要为您的项目配置multidex。

汤跃
2023-03-14

FireBase是一个庞大的库,因此您需要在应用程序中启用Multidex支持。

dependencies {
    compile ('com.google.firebase:firebase-core:9.0.2') {
        exclude module: 'play-services-base'
        exclude module: 'support-v4'
        exclude module: 'support-annotations'
    }
    compile 'com.android.support:multidex:1.0.1'
}

defaultConfig {
        // Enabling multidex support.
        multiDexEnabled true
}
麻宜春
2023-03-14

我有这个问题与反应本地谷歌登录模块。由于如何修改build.gradle的说明通常不是最新的,不完整的,或者只是在多个不相关的项目中定义的,该项目仅在复制了react-nate-google-Signin示例项目的设置后编译。事实证明,语句的顺序和排除组命令一样重要。最终结果如下(在app/build.gradle中):

dependencies {
    ...
    compile 'com.google.android.gms:play-services-auth:9.2.1'
    compile(project(":react-native-google-signin")) {
        exclude group: "com.google.android.gms"
    }   
}

task copyDownloadableDepsToLibs(type: Copy) {
   from configurations.compile
   into 'libs'
}

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

顶部构建。gradle像往常一样包括一个附加的gms类路径:

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

在这些更改之后,构建完成,没有任何多个dex错误。

 类似资料:
  • 错误:将字节码转换为dex时出错:原因:com.android.dex。DexException:多个dex文件定义Lcom/google/android/gms/internal/zzbqy; 这个错误出现在我的android聊天应用程序中,我在这里找到了几个答案,但它无法解决我的问题。我正在为我的项目使用Firebase,我已经成功地对我的用户进行了身份验证,并想在实时数据库中应用他们的照片和

  • 在尝试构建项目时收到此异常。我四处寻找答案,但大多数情况似乎与我的不同。 其他解决方案包括清除临时文件或进行梯度清理。这确实暂时解决了问题,但在几个构建之后,它会再次出现。出现此问题的另一种方式是,如果项目包含库的多个副本。我已经搜索了我的项目,只有一个激活实例。我的libs目录中的jar。大多数其他解决方案似乎涉及在Eclipse中更改构建路径,但我的问题发生在Android Studio 0.

  • 问题内容: 我知道这个问题已经在这里问过几次了。但是我还没有看到任何可能的解决方案。在我将项目“以Android应用程序身份运行”之前,如果我不清理它,则会收到以下错误,并且必须重新启动Eclipse …并再次清理。 com.jstun.core …是我的src文件夹的一部分,我当然不能删除它。即使我删除该程序包,另一个程序包也会显示为错误,例如: 自更新为ADT 15以来,我已经看到此错误,我正

  • 我无法编译该项目,编译时出现以下错误: 错误:任务': myApp: dexDebug'执行失败。 通用域名格式。Android石斑鱼类。常见的内部的LoggedErrorException:无法运行命令:C:\Program Files(x86)\Android\Android studio\sdk\build tools\21.0.2\dx。bat--dex--输出C:\Users\Andro

  • 我敢肯定,不知怎么的,我添加了两倍的谷歌库。 多谢了。