【问题标题】:Gradle version conflict after adding cordova fcm plugin添加cordova fcm插件后的Gradle版本冲突
【发布时间】:2021-05-02 14:42:02
【问题描述】:

将 FCM 插件添加到项目后,它不再构建。

cordova 在哪里检查 GRADLE 版本?来自 package.json? 我尝试更改 package.json 上的 ANDROID_GRADLE_TOOLS_VERSION 规范,但没有成功。

cordova plugin add cordova-plugin-fcm-with-dependecy-updated
cordova run android
FCMPlugin: Support for Gradle v4 or lower is deprecated. Please upgrade to a newer version.FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> Could not create task ':app:processDebugGoogleServices'.
   > Cannot create a proxy class for abstract class 'GoogleServicesTask'.
BUILD FAILED in 3s

我尝试使用 Tiago 建议的插件版本 7.0.8

cordova plugin add cordova-plugin-fcm-with-dependecy-updated@7.0.8

现在我和相机插件有冲突

> Task :app:compileDebugJavaWithJavac
C:\myapp\app\platforms\android\app\src\main\java\org\apache\cordova\camera\CameraLauncher.java:40: error: package android.support.v4.content does not exist
import android.support.v4.content.FileProvider;
                                 ^
C:\myapp\app\platforms\android\app\src\main\java\org\apache\cordova\camera\CordovaUri.java:25: error: package android.support.v4.content does not exist
import android.support.v4.content.FileProvider;
                                 ^
C:\myapp\app\platforms\android\app\src\main\java\org\apache\cordova\camera\FileProvider.java:21: error: package android.support.v4.content does not exist
public class FileProvider extends android.support.v4.content.FileProvider {}
                                                            ^
C:\myapp\app\platforms\android\app\src\main\java\org\apache\cordova\camera\CameraLauncher.java:303: error: cannot find symbol
        this.imageUri = new CordovaUri(FileProvider.getUriForFile(cordova.getActivity(),
                                                   ^
  symbol:   method getUriForFile(Activity,String,File)
  location: class FileProvider
C:\myapp\app\platforms\android\app\src\main\java\org\apache\cordova\camera\CameraLauncher.java:801: error: cannot find symbol
                        Uri tmpFile = FileProvider.getUriForFile(cordova.getActivity(),
                                                  ^
  symbol:   method getUriForFile(Activity,String,File)
  location: class FileProvider
5 errors

> Task :app:compileDebugJavaWithJavac FAILED

FAILURE: Build failed with an exception.

删除 fcm plugin 相机插件再次起作用。 同样奇怪的是,即使在删除 fcm 插件后它仍然在项目中并在控制台上显示错误消息

FCMPlugin.js:46 FCM: has been created
FCMPlugin.js:41 FCM: Ready error:  Class not found
FCMPlugin.js:43 FCM: Ready!
FCMPlugin.js:23 FCM: Error listening to native events Class not found

【问题讨论】:

  • 这里有同样的问题。我试图安装一个单独的和更新的 gradle,但显然,它没有使用它。而且我找不到我要使用的地方,有 ANDROID_GOOGLE_SERVICES_VERSION 但我不认为是那样。尝试更新所有内容,angular、ionic、cordova、android sdk,但也没有用。

标签: cordova cordova-plugin-fcm


【解决方案1】:

显然,我们将不得不等待 fcm 插件人员解决此问题。 前几天打开了这个github issue,看来他们只需要更新插件中的版本。

目前的解决方法是降级到以前的版本。我使用了"cordova-plugin-fcm-with-dependecy-updated": "7.0.8" 并且正在工作。

Github 问题:https://github.com/andrehtissot/cordova-plugin-fcm-with-dependecy-updated/issues/222

【讨论】:

  • 我找到了几个 fcm 插件:cordova-plugin-fcm、cordova-plugin-fcm-ng、cordova-plugin-fcm-with-dependecy-updated、cordova-plugin-fcm-with-dependecy -updated-headup,cordova-plugin-fcm-with-dependency-updated-apns。为什么选择 cordova-plugin-fcm-with-dependecy-updated?
  • 我以前用过它,它是第一个对我有用的(使用 ionic 5)。此外,当时它更新得非常频繁,而其他一些则没有。
  • 我正在尝试使用版本 7.0.8,但现在它与相机插件冲突删除 FCM 相机插件再次起作用。我将在问题上添加错误消息奇怪的是,即使删除插件 FCMplugin 仍然在项目上报告控制台上的错误消息:FCM: Ready error: Class not found; FCM:侦听本机事件时出错 找不到类
  • 进行了降级,但没有出现错误“D8:程序类型已存在:android.support.v4.app.INotificationSideChannel”
【解决方案2】:

如果您的 Cordova 项目包含同时引用 Android 支持库和 AndroidX 的插件/库,您的 Android 构建将失败,因为这两者不能在 Android 构建中并存。

此插件提供了一个 shim,用于将对旧版 Android 支持库的引用迁移到 Cordova Android 平台项目中的新 AndroidX 映射。

这使得启用了 AndroidX(例如使用 cordova-plugin-androidx)的 Cordova 项目能够成功构建,即使它包含引用旧版支持库的插件。

该插件使用挂钩脚本来替换任何旧的支持库引用:

app/build.gradle 和 project.properties 中的 Gradle 工件具有新的工件映射 AndroidManifest.xml 中的类/包名称或带有新类映射的 Java 源代码(Cordova 插件)。

【讨论】:

  • npm i cordova-plugin-androidx-adapter
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-06
  • 1970-01-01
  • 2018-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多