问题描述
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 [email protected]
现在我和相机插件有冲突
> 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(),File)
location: class FileProvider
5 errors
> Task :app:compileDebugJavaWithJavac Failed
FAILURE: Build Failed with an exception.
删除 fcm 插件相机插件再次起作用。 同样奇怪的是,即使在删除 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
解决方法
显然,我们将不得不等待 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
,如果您的 Cordova 项目包含同时引用 Android 支持库和 AndroidX 的插件/库,则您的 Android 构建将失败,因为这两者无法在 Android 构建中并行存在。
此插件提供了一个 shim,用于将旧 Android 支持库的引用迁移到 Cordova Android 平台项目中的新 AndroidX 映射。
这使得启用了 AndroidX 的 Cordova 项目(例如使用cordova-plugin-androidx)能够成功构建,即使它包含引用旧支持库的插件。
该插件使用钩子脚本替换任何旧的支持库引用:
app/build.gradle 和 project.properties 中的 Gradle 工件,带有新的工件映射 AndroidManifest.xml 或带有新类映射的 Java 源代码(Cordova 插件)中的类/包名称。