Ionic Cordova 构建失败,出现错误 Failed to apply plugin

Ionic Cordova build failed with error Failed to apply plugin

当我运行在Ionic中构建Android项目的命令时-

ionic cordova build androidcordova build android

这是我的 platform/android/project.properties

target=android-26
android.library.reference.1=CordovaLib
cordova.gradle.include.1=cordova-support-google-services/luxerus-build.gradle
cordova.gradle.include.2=cordova-plugin-firebase/luxerus-build.gradle
cordova.system.library.1=com.google.gms:google-services:+
cordova.system.library.2=com.google.android.gms:play-services-tagmanager:9.8.0
cordova.system.library.3=com.google.firebase:firebase-core:9.8.0
cordova.system.library.4=com.google.firebase:firebase-messaging:9.8.0
cordova.system.library.5=com.google.firebase:firebase-crash:9.8.0
cordova.system.library.6=com.google.firebase:firebase-config:9.8.0
cordova.system.library.7=com.google.firebase:firebase-perf:9.8.0

输出错误

错误是给你一个额外的解释:

For input string: "+"

所以问题是你使用的格式

cordova.system.library.1=com.google.gms:google-services:+

如果您使用 Android Studio,您还会收到类似

的警告

Avoid using + in version numbers; can lead to unpredictable and unrepeatable builds

Using + in dependencies lets you automatically pick up the latest available version rather than a specific, named version. However, this is not recommended; your builds are not repeatable; you may have tested with a slightly different version than what the build server used. (Using a dynamic version as the major version number is more problematic than using it in the minor version position.)

所以不要 +,至少给它一个主要版本,比如 11.0.+(只需测试一下,看看哪个版本适用于您的项目)。

尝试改变这个

  cordova.system.library.1=com.google.gms:google-services:+

为此:

  cordova.system.library.1=com.google.gms:google-services:3.1.1 

您似乎对 google 播放服务有另一个依赖项您必须修复所有依赖项版本,使其更具体,例如 11.0.+。并尝试使它们全部匹配,例如,如果 firebase 使用不同的服务版本,这可能是你的问题

尝试删除您的 Android 平台并重新添加:

ionic cordova platform rm android

ionic cordova platform add android

然后再次尝试运行您的构建。

以上所有答案都非常有帮助。谢谢!发布答案。

This worked for me by following these steps!!

步骤 - 1)

ionic cordova platform rm android

步骤 - 2) 然后在终端..

nano ~/.bash_profile

export PATH=$PATH:/Users/$USER/Library/Android/sdk/platform-tools/

export PATH=$PATH:/Users/$USER/Library/Android/sdk/tools/

步骤 - 3)

ionic cordova platform add android@6.4.0    

步骤 - 4) 注释行(在文件 cordova-plugin-fcm/project-FCMPlugin.gradle,行号 - 13)

//apply plugin: com.google.gms.googleservices.GoogleServicesPlugin

步骤 - 5) 注释行(在文件 cordova-support-google-services/project-build.gradle,行号 - 16)

//apply plugin: com.google.gms.googleservices.GoogleServicesPlugin

步骤 - 6) 在文件中添加,项目级别 build.gradle,行号 - 35

dependencies {
      classpath 'com.android.tools.build:gradle:3.0.0'
}

步骤 - 7) 在文件 project.properties 中(版本 9.8.0 也适用于我!在另一个项目中,为此我使用了 9.0.0)

target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.google.firebase:firebase-core:9.0.0
cordova.system.library.2=com.google.firebase:firebase-messaging:9.0.0
cordova.gradle.include.1=cordova-plugin-fcm/luxerus-FCMPlugin.gradle
cordova.gradle.include.2=cordova-plugin-firebase/luxerus-build.gradle
cordova.system.library.3=com.google.gms:google-services:+
cordova.system.library.4=com.google.android.gms:play-services-tagmanager:+
cordova.system.library.5=com.google.firebase:firebase-core:+
cordova.system.library.6=com.google.firebase:firebase-messaging:+
cordova.system.library.7=com.google.firebase:firebase-crash:+
cordova.system.library.8=com.google.firebase:firebase-config:+
cordova.system.library.9=com.google.firebase:firebase-perf:+
cordova.gradle.include.3=cordova-support-google-services/luxerus-build.gradle

Even after that, I got this error!

默认 FirebaseApp 未在此过程中初始化 processName 确保先调用 FirebaseApp.initializeApp(Context)。

我有这个问题。我在 android studio 的平台中构建了生成的 android 项目,然后我发现了问题并解决了这个问题。

按照这个步骤..

在平台文件夹中,android/src/{包名}/MainActivity.java

导入 firebase 库, * 导入 com.google.firebase.FirebaseApp;

在 oncreate 方法内部,super.oncreate(savedinstancestate) 下面,

添加FirebaseApp.initializeApp(这个);

最后一步,

在平台文件夹中,android/res/values/string。xml,

添加***

***可以在googleservice.json文件"client"中找到:[{"client_info":{"mobilesdk_app_id":这个值


参考(更多详细信息):https://github.com/arnesson/cordova-plugin-firebase/issues/142


同时在 AndroidManifest.xml

中添加
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="20" />

That's it. Thanks!!

上述问题是由于 google 服务插件在构建过程中应用了不止一次。这个问题可以在 Add support for EnableGoogleServicesPlugin PR 合并到 Cordova Android 后解决,这确保 cordova-support-google-services 只会 运行 一次。