首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

Firebase引用版本冲突解决:Android depende

2024-12-20 来源:化拓教育网
  • 前两天在RN项目中集成原生的firebase,之后报错插件版本冲突,报错信息如下:

尝试

  • 这个问题可是折磨了我大半天,按照网上搜索的解决方式各种尝试

1. 方法一:

  • 在项目的build.gradle中加入
allprojects {
    subprojects {
            project.configurations.all {
                resolutionStrategy.eachDependency { details ->
                    if (details.requested.group == 'com.android.support'
                            && !details.requested.name.contains('multidex') ) {
                        details.useVersion "16.1.0"
                    }
                }
            }
        }
}

2. 方法二:

classpath 'com.google.gms:google-services:4.0.2' // Just updated the version here.

3. 方法三:

  • 各个module的dependencies里的compile改为implementation
    然而,并没有什么卵用

解决方法

  • 之后静下心来好好思考了下,依赖版本冲突,肯定是存在重复依赖的问题。从这个思路着手:

第一步:

  • 将firebase的依赖版本更新到最新版,这样能尽可能的降低版本冲突的概率;
    参考firebase插件的各个发布版本

第二步:

  • image.png
    image.png
  • 在依赖树结构里搜索出现版本冲突的module,即play-services-basement,
    上面应该可以看出来 271行到273行firebase-core引用的play-services-basement版本是16.0.1,
    432行-436行看到react-native-device-info引用的play-services-basement版本变成了16.1.0,
    才导致了play-services-basement引用版本冲突。

  • 那我们去除重复引用play-services-basement不就可以了么。
    在引用firebase-core的moudle的build.gradle文件中exclude 掉play-services-basement,

implementation ('com.google.firebase:firebase-core:16.0.6') { // 所加的第三方框架
        exclude group: 'com.google.android.gms',module: 'play-services-basement'     // 加载时排除框架中的design包
    }
  • 现在编译,就能成功通过了。
显示全文