Ionic 3项目评估失败,包括afterEvaluate {}中的错误

问题描述

晚上好 我有一个使用FCM推送通知的ionic 3应用程序 我已经安装了android 8平台 当我尝试执行cordova build命令时出现错误

项目评估失败,包括afterEvaluate {}中的错误。使用--stacktrace运行以获取afterEvaluate {}错误的详细信息。

失败:构建失败,并出现异常。

其中: 脚本“ C:\ IONIC \ AlloPressing \ platforms \ android \ cordova-plugin-fcm-with-dependecy-updated \ starter-FCMPlugin.gradle”行:16

出了什么问题: 评估脚本时出现问题。

无法在空对象上调用方法lastIndexOf()

尝试: 使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行,以获取更多日志输出。使用--scan运行以获取完整的见解。

通过https://help.gradle.org

获取更多帮助

在1m 8s内失败

配置项目:app c:\ IONIC \ AlloPressing \ platforms \ android \ gradlew:命令失败,退出代码为1错误输出: 项目评估失败,包括afterEvaluate {}中的错误。使用--stacktrace运行以获取afterEvaluate {}错误的详细信息。

请如何纠正这个问题?

解决方法

我今天更新系统后遇到了同样的问题。

方法一:

删除插件并使用正确的 ANDROID_GRANDLE_TOOLS_VERSION 变量再次添加:

cordova plugin remove cordova-plugin-fcm-with-dependecy-updated

cordova plugin add cordova-plugin-fcm-with-dependecy-updated --variable ANDROID_GRADLE_TOOLS_VERSION="4.1.0"   --variable ANDROID_GOOGLE_SERVICES_VERSION="4.3.4" 

方法二:

让我们检查错误。打开文件并转到第 16 行

C:\IONIC\AlloPressing\platforms\android\cordova-plugin-fcm-with-dependecy-updated\starter-FCMPlugin.gradle

在我的 linux 上,该行具有以下内容:

 ext.gradleNumberVersion = ANDROID_GRADLE_TOOLS_VERSION.substring(0,ANDROID_GRADLE_TOOLS_VERSION.lastIndexOf(".")).toFloat()

看起来是关于 ANDROID_GRANDLE_TOOLS_VERSION。

设置变量。在 linux 上,我使用:

export ANDROID_GRADLE_TOOLS_VERSION=4.1.0

尝试重新编译:

ionic cordova build android --aot --minifyjs --minifycss --release

PS:您需要提供一些信息。 ionic info 的输出是什么?

PS:我使用 ubuntu 18 在我的电脑上尝试过的那些步骤:

离子:

   Ionic CLI          : 6.12.3 (/usr/local/lib/node_modules/@ionic/cli)
   Ionic Framework    : ionic-angular 3.9.2
   @ionic/app-scripts : 3.2.3

Cordova:

   Cordova CLI       : 10.0.0
   Cordova Platforms : android 9.0.0
   Cordova Plugins   : cordova-plugin-ionic-webview 1.2.1,(and 29 other plugins)

Utility:

   cordova-res (update available: 0.15.2) : 0.8.1
   native-run                             : 1.3.0

System:

   Android SDK Tools : 26.1.1 (/home/diego/Android/Sdk)
   NodeJS            : v12.20.0 (/usr/local/bin/node)
   npm               : 6.14.10
   OS                : Linux 5.4

PS:cordova-plugin-fcm-with-dependecy-updated 页面上,您可以找到很多有用的信息。

PS:可能,您必须在同一个文件中注释两行:

// class must be used instead of id(string) to be able to apply plugin from non-root gradle file
//if (!project.plugins.hasPlugin('com.google.gms.google-services')) {
 //   apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
//}

如果你这样做了,请告诉我。祝你好运!