【问题标题】:Firebase duplicate files build errorFirebase 重复文件构建错误
【发布时间】:2017-09-11 13:01:56
【问题描述】:

我一直在开发和开发我的应用程序,然后我决定构建 APK,然后我收到重复文件错误,特别是关于 firebase zzc.class?我找不到。我之前看到过重复的文件错误并将其整理出来,但是这个 Firebase 错误确实减慢了我的工作,因为我没有看到我的问题的具体答案。

以下是我的依赖项

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', 
{
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.+'
compile 'com.android.support:support-v4:25.+'
compile 'com.android.support:design:25.+'
compile 'com.google.firebase:firebase-auth:10.0.1'
compile 'com.google.firebase:firebase-database:10.0.1'
compile 'com.firebase:firebase-client-android:2.3.1'
compile 'com.google.firebase:firebase-storage:10.0.1'
compile 'com.firebaseui:firebase-ui:2.0.1'
compile 'org.apache.pdfbox:pdfbox:2.0.0'
compile 'net.igenius:customcheckbox:1.3'
compile 'com.roger.catloadinglibrary:catloadinglibrary:1.0.1'
testCompile 'junit:junit:4.12'
}

然后报错:

【问题讨论】:

    标签: android firebase duplicates dependencies android-gradle-plugin


    【解决方案1】:

    您正在使用相同库的不同版本:

    compile 'com.google.firebase:firebase-auth:10.0.1'
    compile 'com.google.firebase:firebase-database:10.0.1'
    compile 'com.google.firebase:firebase-storage:10.0.1'
    compile 'com.firebaseui:firebase-ui:2.0.1'
    

    正如你可以read here 一样,firebaseui 和 firebase 库之间存在依赖关系:

    FirebaseUI Version  Firebase/Play Services Version
    2.3.0               11.0.4
    2.2.0               11.0.4
    2.1.1               11.0.2
    2.0.1               11.0.1
    

    使用相同的版本来避免这些问题。

    也没有理由使用旧的:

    compile 'com.firebase:firebase-client-android:x.x.x'
    

    检查migration guide并使用:

    compile "com.google.firebase:firebase-database:X.X.X"
    

    请记住,最新版本需要google maven repo

    allprojects {
        // ...
        dependencies {
            // ...
            maven {
                url "https://maven.google.com" // Google's Maven repository
            } 
        }
    }
    

    【讨论】:

      【解决方案2】:

      发生这种情况是因为您的 build.gradle 文件中有一个副本。要解决这个问题,您需要删除以下代码行:

      compile 'com.firebase:firebase-client-android:2.3.1'
      

      您不能将旧版本的依赖项与新版本混合。

      【讨论】:

      • 不,它仍然会给出相同的错误,我试图稍微调整一下依赖关系,看看它是否会消失,但错误只是不断地变得更糟。所以现在删除firebase-client后的错误是一样的:(
      • 将所有依赖项更新为11.0.4 版本,并保留该行的注释。有什么变化吗?
      【解决方案3】:

      确保在您的 build(app) 配置中将 firebase 版本更新为最新的可用版本,该配置在 firebase 文档中准确提及。

      [https://firebase.google.com/docs/android/setup/]

      如果您使用播放服务,请确保 Firebase 库的版本应与播放服务版本完全相同。

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

      如果存在库冲突,则将 gradle 添加为:

       defaultConfig {
          multiDexEnabled true
      }
      

      在您的基础应用程序中

      @Override
      protected void attachBaseContext(Context base) {
          super.attachBaseContext(base);
          MultiDex.install(this);
      }
      

      【讨论】:

      • 按照网页链接中提到的文档添加构建依赖项
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多