Ionic Cordova构建失败,出现错误无法应用插件

时间:2018-04-22 06:07:09

标签: android cordova ionic-framework ionic2 ionic-native

当我运行命令在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

输出错误

enter image description here

6 个答案:

答案 0 :(得分:1)

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

  

对于输入字符串:" +"

所以问题是你用于

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

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

的警告
  

避免在版本号中使用+;会导致无法预测和   不可重复的构建

     

在依赖项中使用+可让您自动获取最新信息   可用版本而不是特定的命名版本。但是,这个   不推荐;你的构建不可重复;你可能有   测试版本与构建服务器略有不同   用过的。 (使用动态版本作为主要版本号更多   比在次要版本位置使用它有问题。)

因此,请至少为+提供一个主要版本,而不是11.0.+(仅测试并查看适用于您项目的版本)。

答案 1 :(得分:1)

尝试更改此

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

To This:

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

答案 2 :(得分:0)

看起来你对谷歌播放服务有另一种依赖你必须修复所有依赖版本更具体,如11.0。+。并尝试使所有这些都匹配,例如,如果firebase使用不同的服务版本,这可能是你的问题

答案 3 :(得分:0)

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

ionic cordova platform rm android

ionic cordova platform add android

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

答案 4 :(得分:0)

以上所有答案都非常有帮助。谢谢!张贴答案。

  

按照这些步骤,这对我有用!!

步骤 - 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
  

即使在那之后,我也收到了这个错误!

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

我有这个问题。我在android studio的平台上构建了生成的android项目然后我找到了问题并解决了这个问题。

按照以下步骤操作..

在platforms文件夹中,android / src / {package name} /MainActivity.java

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

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

添加FirebaseApp.initializeApp(this);

最后一步,

在platforms文件夹中,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" />
  

就是这样。谢谢!

答案 5 :(得分:0)

上述问题是由于在构建期间多次应用了google服务插件而导致的。一旦Add support for EnableGoogleServicesPlugin PR合并到Cordova Android就可以解决这个问题,这可以确保cordova-support-google-services只运行一次。