android - CORDOVA 11 Android 构建失败 : Unresolved reference: FireBaseInstanceId

标签 android firebase kotlin cordova onesignal

我正在尝试在 Cordova 到 Android 上构建我的应用程序。 Cordova、Gradle 和 cordova-android 已经过时了,所以我更新了它们。现在的版本是:

  • 节点 16.13.2
  • npm 8.1.2
  • Cordova 11.0.0
  • cordova-android 11.0.0
  • Gradle 7.6
  • JDK 11.0.16
  • AndroidAPI 32
  • Android SDK 构建工具 32.0.0
命令: cordova build --debug android --buildConfig

控制台错误:

cordova-plugin-androidx-adapter: Processed 61 source files in 2342ms
[cordova-plugin-push::before-compile] skipping before_compile hookscript.
Checking Java JDK and Android SDK versions
ANDROID_HOME=C:\Users\bryan\AppData\Local\Android\Sdk\ (recommended setting)
ANDROID_SDK_ROOT=C:\Users\bryan\AppData\Local\Android\Sdk\ (DEPRECATED)
Using Android SDK: C:\Users\bryan\AppData\Local\Android\Sdk\
Reading build config file: C:\Users\bryan\Documents\TCHE\bitBucket\backend\build.json
Reading the keystore from: C:\Users\bryan\Documents\TCHE\bitBucket\backend\tchedelivery.keystore
Subproject Path: CordovaLib
Subproject Path: app

> Configure project :app
Adding classpath: com.google.gms:google-services:4.3.8

> Task :app:compileDebugKotlin
w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
    C:/Users/bryan/.gradle/caches/transforms-3/37c16254af6de93c45d2587b8dfcd992/transformed/jetified-kotlin-stdlib-jdk7-1.5.20.jar (version 1.5)
    C:/Users/bryan/.gradle/caches/transforms-3/efb587c616850f9dc0cda8853a96db77/transformed/jetified-kotlin-stdlib-1.6.21.jar (version 1.6)
    C:/Users/bryan/.gradle/caches/transforms-3/b6f68fc904e7a7217e6038f3031dcf3a/transformed/jetified-kotlin-stdlib-common-1.6.21.jar (version 1.6)
w: Some runtime JAR files in the classpath have an incompatible version. Consider removing them from the classpath
e: C:\Users\bryan\Documents\TCHE\bitBucket\backend\platforms\android\app\src\main\java\com\adobe\phonegap\push\PushInstanceIDListenerService.kt: (5, 32): Unresolved reference: FireBaseInstanceId
e: C:\Users\bryan\Documents\TCHE\bitBucket\backend\platforms\android\app\src\main\java\com\adobe\phonegap\push\PushInstanceIDListenerService.kt: (25, 5): Unresolved reference: FireBaseInstanceId
e: C:\Users\bryan\Documents\TCHE\bitBucket\backend\platforms\android\app\src\main\java\com\adobe\phonegap\push\PushPlugin.kt: (19, 32): Unresolved reference: FireBaseInstanceId
e: C:\Users\bryan\Documents\TCHE\bitBucket\backend\platforms\android\app\src\main\java\com\adobe\phonegap\push\PushPlugin.kt: (465, 19): Unresolved reference: FireBaseInstanceId
e: C:\Users\bryan\Documents\TCHE\bitBucket\backend\platforms\android\app\src\main\java\com\adobe\phonegap\push\PushPlugin.kt: (472, 21): Unresolved reference: FireBaseInstanceId
e: C:\Users\bryan\Documents\TCHE\bitBucket\backend\platforms\android\app\src\main\java\com\adobe\phonegap\push\PushPlugin.kt: (615, 11): Unresolved reference: FireBaseInstanceId

> Task :app:compileDebugKotlin FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugKotlin'.
> Compilation error. See log for more details

* Try:
> Run with --stacktrace option to get the stack trace.

只有当我添加“onesignal-cordova-plugin”时才会发生这种情况。插件版本为3.3.0(最新)。

我尝试更新所有构建工具(cordova 是 9,我将其更新到 11,与 cordova-android 相同,gradle 是 6.6.1,我将其更新到 7.6,...)

我尝试过清理 gradle 缓存(“C:/Users/bryan/.gradle/caches/transforms-3/”)

最佳答案

首先也是最重要的一点,不要同时进行多次升级。特别是 Cordova 安卓。逐个版本并阅读相关更新文档。它们是主要版本,因此具有重大更改。如果你必须一次解决几个错误,你就会让自己变得更加困难(在我看来,cordova-android-10 目前也很好)。 target-sdk 升级还包括重大更改。以下是 cordova-android 10 的更新文档,所有版本都存在:https://cordova.apache.org/announcements/2021/07/20/cordova-android-10.0.0.html

至于您的具体错误,您使用的是哪个版本的phone-plugin-push(这似乎引发了您的错误)?是这个吗:https://www.npmjs.com/package/phonegap-plugin-push ?因为它有一个很大的弃用警告,所以我们切换到这个:https://www.npmjs.com/package/@havesource/cordova-plugin-push (不确定这是原因还是其他问题)。但您仍然需要对其进行修补以在需要时添加 FLAG_MUTABLE。 (你可以使用补丁包来做到这一点) 插件存储库中的此问题也可能揭示此错误:https://github.com/phonegap/phonegap-plugin-push/issues/2768 根本原因似乎是该instanceID的实现已经改变。

如果这可以解决您的问题或者是否还有任何剩余错误,请告诉我。我自己完成了这些更新,我知道它们可能会很痛苦,并且可能需要更多的钩子(Hook)和补丁。

关于android - CORDOVA 11 Android 构建失败 : Unresolved reference: FireBaseInstanceId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75059450/

相关文章:

java - 将 Java 文件转换为 Kotlin 现在无法编译 - "Internal compiler error"

android - LocationManager.KEY_PROXIMITY_ENTERING 不可用于接近警报?

java - ConcurrentModificationException 使我的应用程序崩溃

javascript - Firebase:Query.on 失败:使用 1 个参数调用。预计至少 2

java - Android Firebase 。将数据添加到特定用户 Firebase 数据库

android - 回收 View 仅显示 1 个元素

java - Spring 奇怪地取决于上课地点

android - 如何防止LRU缓存android中的内存不足错误

android - 使用 FileProvider 在 Android 用户之间共享文件

rest - 错误: Getters of lazy classes cannot be final Kotlin Spring Boot