【问题标题】:Apache cordova Build failed on implementing firebase : Dependency failingApache cordova Build 在实施 firebase 时失败:依赖失败
【发布时间】:2020-01-15 08:58:27
【问题描述】:

这是错误

[ 出了什么问题: 无法确定任务 ':app:compileDebugJavaWithJavac' 的依赖关系。

在项目“app”中,已解决的 Google Play 服务库依赖项依赖于另一个确切版本(例如“[19.0. 1]",但没有被解析为该版本。库表现出的行为将是未知的。

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

以下依赖是直接的或具有传递依赖的项目依赖导致艺术 ifact with the issue.]这里是命令提示符图片---view

【问题讨论】:

    标签: cordova firebase-cloud-messaging


    【解决方案1】:

    今天也发生在我身上。就我而言,我通过将 package.json 文件中的 firebase 消息传递版本更改为 20.1.+ 来解决它,尽管我的版本早于 19.0.1,所以它可能不适用于您的项目。

    更新

    如果您使用的是 cordova 插件,那么这取决于您如何向该插件指定您要使用的 Google 消息传递库的版本。

    例如,在我的例子中,我使用的是cordova-plugin-firebase-messaging,它在自述文件中有以下语句:

    使用变量 FIREBASE_ANALYTICS_VERSION、FIREBASE_MESSAGING_VERSION 和 ANDROIDX_CORE_VERSION 覆盖 Android 上的依赖版本。

    所以,在我的 package.json 中,我会包含以下内容:

    {
        ...
        "dependencies": {
            ...
            "cordova-plugin-firebase-messaging": "4.0.1"
        },
        "cordova" : {
            ...
            "plugins": {
                "cordova-plugin-firebase-messaging": {
                    "FIREBASE_MESSAGING_VERSION": "20.1.+"
                }
            }
        }
    }
    

    但这仅适用于这个 cordova 插件,如果您使用其他插件,请查看他们的自述文件以检查您是否可以指定本机消息传递库的版本。

    【讨论】:

    • firebase-messaging 没有出现在 package.json 中。我只有 "cordova-plugin-firebase": "2.0.5", "cordova-plugin-firebase-lib": "^ 4.1.0",
    • 感谢您的回复..这是一个临时错误。
    • 而且我在 package.json 文件中也没有看到任何 firebase 消息传递版本
    • 如果您使用的是用于 firebase 的 cordova 插件,那么这取决于插件使用的是什么版本的 google 的 firebase 库。例如,github.com/chemerisuk/cordova-plugin-firebase-messaging 这个 cordova 插件具有包 json 的 FIREBASE_MESSAGING_VERSION 属性,因此您可以说明要包含哪个版本,并在 package.json 的插件部分中包含:“cordova-plugin-firebase -messaging": { "FIREBASE_MESSAGING_VERSION": "20.1.+" } 但请注意,这取决于您使用的是哪个 cordova 插件。
    • 不...仍然失败。两天前没有问题..我尝试更改 build.gradle 和很多东西,但它对我不起作用...
    【解决方案2】:

    如果您使用的是cordova-plugin-fcm-with-dependecy-updated。将package.json上的FCM_VERSION改为20.1.+

    希望对你有帮助!

    【讨论】:

      【解决方案3】:

      我用

      解决了
        "cordova-plugin-fcm-with-dependecy-updated": {
          "FCM_CORE_VERSION": "16.0.9",
          "FCM_VERSION": "20.1.+",
          "GRADLE_TOOLS_VERSION": "3.5.0",
          "GOOGLE_SERVICES_VERSION": "4.2.0",
          "ANDROID_DEFAULT_NOTIFICATION_ICON": "@mipmap/ic_launcher"
        },
      

      "cordova-plugin-firebase-analytics": {
          "FIREBASE_ANALYTICS_COLLECTION_ENABLED": "true",
          "FIREBASE_ANALYTICS_VERSION": "17.4.+"
        }
      

      在 package.json 中

      【讨论】:

      • 我在 package.json 中尝试过同样的方法。然后我在做cordova prepare android,但版本按照 package.json。 FCM_VERSION 在 android (project.properties) 中为 19.0.0。即使我试过这个,cordova platform rm android => cordova platform add android@8.1.0 但没有运气。如果我做错了什么,请帮助我..
      • 这里很少有代码 sn-ps 关于我上面的评论,gist.github.com/iamhimadri/d54708b80254660dfdc2a15fe32bd97d
      【解决方案4】:

      This Worked。仅更改 package.json 中的版本无效。我不知道为什么。

      如果可行,我建议将您的 ionic 框架升级到最新版本。但如果这不可行,下面是我为我们的一个遗留项目解决问题的方法。

      您可以通过更改强制 firebase 使用正确版本的 firebase-messaging

      com.google.firebase:firebase-messaging:19.+
      com.google.firebase:firebase-messaging:20.+
      

      在以下文件中:

      • platforms\android\project.properties
      • platforms\android\app\build.gradle
      • plugins\cordova-plugin-firebase-lib\plugin.xml

      【讨论】:

        【解决方案5】:

        同样的问题也发生在我身上。对我来说,改变 gradle 是有效的。

        我在gradle-wrapper.properties里面改了关注

        来自

        distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
        

        distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-06-16
          • 2018-03-19
          • 2015-07-25
          • 1970-01-01
          • 1970-01-01
          • 2014-10-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多