对于应用程序开发,我需要Firebase云消息传递。 在我的pubsepc.yaml中,我添加了以下依赖项:firebase_messaging:^5.1.6
我暂时没有添加代码。
之后我构建代码,但出现错误:
flutter/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-5.1.6/android/src/main/java/io/flutter/plugins/firebasemessaging/FlutterFirebaseMessagingService.java:143: error: method findAppBundlePath in class FlutterMain cannot be applied to given types;
String appBundlePath = FlutterMain.findAppBundlePath();
^
required: Context
found: no arguments
reason: actual and formal argument lists differ in length
1 error
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':firebase_messaging:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1s
Finished with error: Gradle task assembleDebug failed with exit code 1
如果你去Java并检查FlutterFirebaseMessagingService.java
FlutterMain.findAppBundlePath()
它需要这里的参数中的上下文,所以第一个解决方案在这里,你可以像这样在参数中添加上下文
FlutterMain.findAppBundlePath(context)
第二种解决方案从pubspac.yaml
中删除firebase_messaging: ^5.1.6
依赖项,并在终端中点击flutter clean
进行清理,现在添加firebase_messaging: 5.1.6
(不带^(并在终端中点击flutter pub get
。这个解决方案对我有用。
第二种解决方案是更好的做法。
@Maddy的答案很明确。但如果有人没有解决问题。
请尝试:flutter upgrade
并做@Maddy答案
这对我有用。 对不起新线程答案,我没有足够的声誉