晚上好\n有一个 ionic 3 应用程序,它使用 FCM 进行推送通知\n我安装了 android 8 平台\n当我尝试执行 cordova build 命令时,我收到错误:
\n项目评估失败,包括 afterEvaluate {} 中的错误。使用 --stacktrace 运行以获取 afterEvaluate {} 错误的详细信息。
\n失败:构建失败并出现异常。
\n其中:\nScript \xe2\x80\x98C:\\IONIC\\AlloPressing\\platforms\\android\\cordova-plugin-fcm-with-dependecy-updated\\starter-FCMPlugin.gradle\xe2\x80\x99 行:16
\n出了什么问题:\n评估脚本时出现问题。
\n无法对 null 对象调用 LastIndexOf() 方法
\n尝试:\n使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。
\n在https://help.gradle.org获取更多帮助
\n1m 8s 内构建失败
\n配置项目:app\nc:\\IONIC\\AlloPressing\\platforms\\android\\gradlew:命令失败,退出代码为 1 错误输出:\n项目评估失败,包括 afterEvaluate {} 中的错误。使用 --stacktrace 运行以获取 afterEvaluate {} 错误的详细信息。
\n请问如何纠正这个问题?
\n我今天更新系统后也遇到同样的问题。
方法一:
删除插件并使用正确的 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"
Run Code Online (Sandbox Code Playgroud)
方法二:
我们来检查一下错误。打开文件并转到第 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()
Run Code Online (Sandbox Code Playgroud)
看起来是关于 ANDROID_GRANDLE_TOOLS_VERSION 的。
设置变量。在Linux上,我使用:
export ANDROID_GRADLE_TOOLS_VERSION=4.1.0
Run Code Online (Sandbox Code Playgroud)
再次尝试编译:
ionic cordova build android --aot --minifyjs --minifycss --release
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
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
//}
Run Code Online (Sandbox Code Playgroud)
如果你这样做了请告诉我。祝你好运!
| 归档时间: |
|
| 查看次数: |
4570 次 |
| 最近记录: |