【问题标题】:The library com.google.firebase:firebase-iid is being requested by various other libraries at [[17.0.0,17.0.0]], but resolves to 16.2.0[[17.0.0,17.0.0]] 的各种其他库正在请求库 com.google.firebase:firebase-iid,但解析为 16.2.0
【发布时间】:2019-01-21 05:03:05
【问题描述】:

我今天开始收到这个错误,昨天一切正常,gradle 或 firebase 版本没有变化

库 com.google.firebase:firebase-iid 正在被请求 [[17.0.0,17.0.0]] 的各种其他库,但解析为 16.2.0。 禁用插件并使用 ./gradlew 检查您的依赖关系树 :app: 依赖项。

I saw that yesterday was update in google-services plugin,这可能是导致问题的原因。

如何解决这个问题?

【问题讨论】:

  • 使用最新的 google-services 版本更新您的所有 firebase 实施版本和项目 build.gradle 文件
  • 检查您的应用中是否有 OneSignal。如果你这样做,请参考这个stackoverflow.com/questions/46552044/…
  • @GeorgySavatkov 我在这个项目中没有 OneSignal
  • 哦,好吧。然后你可能真的想执行./gradlew :app:dependencies 看看发生了什么。另一个提示:在您的应用程序和模块级别的gradle 文件中,确保google() 位于最顶部,jcenter() 位于repositories 部分的最底部。可笑的是,有时它会有所帮助
  • 我已经解决了与this类似的问题

标签: android react-native android-gradle-plugin google-play-services react-native-android


【解决方案1】:

我有同样的问题。一个快速的解决方法是禁用导致此问题的严格版本检查。添加

com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true

在应用程序 build.gradle 文件的最底部。

【讨论】:

  • 我猜这可能会产生一些不好的副作用?
  • 这可能看起来很危险,但我已经尝试了此页面上的所有答案,除了这个之外没有任何效果。我们的项目刚刚在周末停止编译,我们没有进行任何更改,这阻止了我们发布新版本——我们还能做什么?!
  • 更好地检查(并投票)@masoudmjm 解决方案。这是一个更好的,因为不需要禁用任何检查。主要问题可能是您错过了更新您使用的其他 rnFirebase 插件(例如消息传递)。对我来说,它解决了将 firebase-messaging 置于 17.5.0 的问题,如 rnfirebase 文档中所述。
  • 嗨@Nick,(或任何其他可以回答的人):使用cordova时,build.gradle是在运行时创建的,你不能添加任何东西,唯一的选择是使用build-extras。有没有办法将此规则添加到 build-extras.gradle ?
  • 不适合我。我明白了:No such property: config for class: com.google.gms.googleservices.GoogleServicesPlugin
【解决方案2】:

我有同样的问题。我通过将 firebase 消息更新到最新版本(此时)解决了这个问题。

implementation 'com.google.firebase:firebase-messaging:17.0.0'

implementation 'com.google.firebase:firebase-messaging:17.3.4'

解决了(没有副作用)

【讨论】:

  • 我尝试过同样的事情,它奏效了。这应该被赞成,因为当前的最佳答案是推荐一些可能会在以后引起其他副作用的东西。
  • 为我工作,必须更新到implementation 'com.google.firebase:firebase-messaging:17.6.0'
  • 这是正确的解决方案。如果您升级 rnfirebase,请记住也要更新所有使用的 firebase 组件!!!为此,请检查您使用的每个 rnFirebase 插件的“安装”部分。
  • 这是正确答案。请不要禁用任何检查
  • 我不得不在 project.properties 中更新它,因为 build.gradle 一直在重置
【解决方案3】:

如果您遇到此问题,您可能会看到很多帖子说您可以禁用此检查。我不喜欢这样做,因为它隐藏了问题。

过了一会儿,我终于明白这是在说某个库正在要求我没有的版本。所以我在 build/app/build.gradle 中添加了这个并构建了

implementation "com.google.firebase:firebase-iid:17.0.2"

只需使用它说它解析的版本,在你的情况下是 16.2.0。

【讨论】:

  • 谢谢。这是我的情况的解决方案。有从“com.google.firebase:firebase-messaging:21.1.0”到“:22.0.0”的更新。在此实现声明之前就足够了。但现在我不得不添加“com.google.firebase:firebase-iid:21.1.0”。我不知道为什么,但是有了它,项目再次构建而没有错误。不幸的是,错误消息“重复类”非常令人困惑!
【解决方案4】:

对我来说,禁用版本检查并没有解决问题。我所做的是从 firebase 消息传递库中排除 firebase-iid 模块并单独添加它

implementation ("com.google.firebase:firebase-messaging:17.3.4"){
        exclude group: 'com.google.firebase', module: 'firebase-iid'
    }

implementation 'com.google.firebase:firebase-iid:17.0.3'

【讨论】:

    【解决方案5】:

    我在 'com.google.firebase:firebase-iid 使用这些 firebase 依赖项时遇到了类似的错误:

    1. 实施 'com.google.firebase:firebase-core:16.0.7'
    2. 实施“com.google.firebase:firebase-messaging:17.3.4”
    3. 实施 'com.google.firebase:firebase-database:16.0.6'
    4. 实现 'com.crashlytics.sdk.android:crashlytics:2.9.6'
    5. 实施 'com.google.firebase:firebase-functions:16.1.3'

    添加后

    • 实施“com.google.firebase:firebase-analytics:16.3.0”

    它消失了。

    【讨论】:

    • 非常感谢。以上解决方案都不适合我。但你的工作就像一个魅力
    【解决方案6】:

    我今天遇到了同样的错误。我正在使用react-native-firebasereact-native-push-notification。运行./gradlew :app:dependencies 我看到react-native-push-notification 需要最新版本的com.google.firebase:firebase-messaging,而后者又需要com.google.firebase:firebase-iid:[17.0.0],导致错误。

    here 所述,我为react-native-push-notification 手动指定了早期版本的firebase-messaging。这解决了我的问题:

    // in android/build.gradle
    
    ext {
        firebaseVersion = '17.1.0' // add this line
        // ...
    }
    

    【讨论】:

    • Swigget 是否需要安装 react-native-firebase 才能让 react-native-push-notifications 从 FCM 工作?
    【解决方案7】:

    这解决了我的问题。所以你可以试一试。添加

    googleServices { disableVersionCheck = true }

    到 app\build.gradle

    【讨论】:

    • 这有什么缺点?
    • 好吧,我没有注意到,但这当然意味着 gradle 不会拾取基于某些过时版本而无法运行的依赖项,因为它不再检查版本。但既然我们指定 Google 服务不应该是太大的妥协。
    【解决方案8】:

    对我来说,它是 node_modules/@aws-amplify/pushnotification 中的 build.gradle 文件(react-native-push-notification 中的 build.gradle 文件也是如此)

    更改 firebase 包的版本号以匹配您自己的 app/build.gradle 文件中的内容。

    对我来说是

    compile 'com.google.firebase:firebase-messaging:17.6.0' compile 'com.google.firebase:firebase-core:16.0.8'

    【讨论】:

    • 对我来说实施 'com.google.firebase:firebase-core:16.0.8' 有效
    • 这对我有用 googlePlayServicesVersion = "17.0.2"
    【解决方案9】:
    • 添加最新的cordova-android平台(v8.0.0)

      ionic cordova 平台添加 android@latest

    • 添加我的这个插件的分支

      ionic cordova 插件添加 cordova-plugin-firebasex

    • 在项目中添加插件以启用 AndroidX

      ionic cordova 插件添加 cordova-plugin-androidx

    • 添加插件以修补现有插件源

    ionic cordova 插件添加cordova-plugin-androidx-adapter

    • 建造!

      ionic cordova 构建安卓

    百分百有效

    【讨论】:

    • 如果我们有 Ionic 3 怎么办?我没有设法让 firebasex 在 ionic 3 上工作
    【解决方案10】:

    仅适用于 Android Studio 用户

    我有同样的问题。这是在之后添加的 应用插件:“com.google.gms.google-services” com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true

    在您的应用程序 build.gradle 文件的最底部,我的问题已解决

     apply plugin: 'com.google.gms.google-services' 
    
    com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
    

    【讨论】:

      【解决方案11】:

      当我从 Android Studio 助手设置 FCM android 客户端时,它只是在我的 gradle 文件中添加了一些旧版本的 fcm,我从 android 开发者网站本身复制粘贴的最新版本,然后错误去了在其自己的。希望这对面临类似问题的人有所帮助。

      【讨论】:

        【解决方案12】:

        我想我迟到了,但也许这个解决方案可以解决某人的问题。

        在 build.gradle 中将 com.google.gms:google-services:4.0.0 更新为 com.google.gms:google-services:4.3.3 解决了我的问题。

        【讨论】:

          【解决方案13】:

          我遇到了同样的问题,但我通过将所有 firebase 依赖项更新到最新的依赖项解决了这个问题。

          // Firebase
              implementation 'com.google.firebase:firebase-core:17.0.1'
              implementation 'com.google.firebase:firebase-auth:18.1.0'
              implementation 'com.google.firebase:firebase-messaging:19.0.1'
          
              implementation 'com.firebaseui:firebase-ui-firestore:5.0.0'
              implementation 'com.firebaseui:firebase-ui-storage:5.0.0'
          
              testImplementation 'junit:junit:4.12'
              androidTestImplementation 'androidx.test:runner:1.3.0-alpha01'
              androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0-alpha01'
          

          【讨论】:

            【解决方案14】:

            我遇到了类似的问题,但出现了错误消息;

            依赖失败:com.google.firebase:firebase-messaging:17.0.0 -> com.google.firebase:firebase-iid@[16.0.0],但会触发 base-iid 版本 是 19.0.0。

            并在App级build.gradle中使用以下版本解决;

            // Google Firebase
            implementation 'com.google.firebase:firebase-core:17.0.1'
            implementation 'com.google.firebase:firebase-messaging:19.0.1'
            

            【讨论】:

            • 我遇到了类似的问题,只是将 com.google.firebase-messaging 更改为 19.0.0 版本并且工作正常。请注意
            【解决方案15】:

            我在集成“firebase-analytics”时遇到了同样的问题。

            原码:

            implementation 'com.google.firebase:firebase-core:16.0.4'
            implementation 'com.google.firebase:firebase-analytics:17.0.0'
            

            通过代码解决:

            implementation 'com.google.firebase:firebase-core:16.0.4 '
            implementation 'com.google.firebase:firebase-analytics:16.0.0'
            

            'firebase-analytics'版本改成与'firebase-core'同级

            【讨论】:

              【解决方案16】:

              firebase-messaging 的版本增加基本上是正确的,但以防万一人们看到这一点,我建议查看 Current Android Release Notes 以使您的所有 firebase 库保持最新。

              问题在于,如果您实现一个需要其他 Firebase 库才能运行的库,然后添加另一个具有相同依赖项但在更高版本上的库,则会失去兼容性。

              截至目前,Google 在不发布新库的破坏或不兼容版本方面已经好多了。使用最新的,你应该没问题。

              【讨论】:

                【解决方案17】:

                我更新了我的 firebase 消息传递版本,它解决了我的问题。

                之前

                implementation 'com.google.firebase:firebase-messaging:17.6.0'
                
                

                更新

                implementation 'com.google.firebase:firebase-messaging:20.0.1'
                
                

                【讨论】:

                • 不要这样做。我对此有很多问题。
                【解决方案18】:

                如果升级所有com.google.firebase 库不能解决问题,请尝试升级com.google.gms:google-services 的谷歌服务插件依赖项。

                【讨论】:

                  【解决方案19】:

                  我遇到了同样的问题。通过从 https://firebase.google.com/support/release-notes/android 更新最新的 firebase-messaging 版本解决了问题

                  来自

                  实现 'com.google.firebase:firebase-messaging:19.0.0'

                  实现 'com.google.firebase:firebase-messaging:19.0.1'

                  我不知道为什么突然出现构建错误。看起来很奇怪,但是当我更新 firebase-messaging 版本时,问题解决了。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 2019-06-19
                    • 2019-04-01
                    • 2018-12-31
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多