Apache cordova 构建在实现 firebase 时失败:依赖失败



这是错误

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

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

依赖失败:com.google.firebase:firebase-messaging:19.0.1 -> com.google.firebase:firebase-iid@[19.0.1],但火灾 基本IID版本是20.0.2。

以下依赖项是直接的项目依赖项或具有导致艺术的传递依赖项 事实上的问题。这是命令提示符图片---视图

今天也发生在我身上。就我而言,我通过在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 插件,如果您使用的是另一个插件,请查看他们的自述文件以检查您是否可以为本机消息传递库指定版本。

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

希望对您有所帮助!

我用

"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.+"
}

在包中.json

这奏效了。仅更改package.json中的版本不起作用。我不知道为什么。

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

您可以通过更改以下内容来强制 Firebase 使用正确版本的 Firebase 消息传递

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

在以下文件中:

  • platformsandroidproject.properties
  • platformsandroidappbuild.gradle
  • pluginscordova-plugin-firebase-libplugin.xml

同样的问题也发生在我身上。对我来说,改变 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

最新更新