Java 颤振-无法将MethodChannel与Firebase onBackgroundMessage一起使用

Java 颤振-无法将MethodChannel与Firebase onBackgroundMessage一起使用,java,android,android-studio,flutter,dart,Java,Android,Android Studio,Flutter,Dart,我在应用程序关闭时尝试打开android活动时失败。在下面的代码中可以看到,当我从firebase收到数据通知时,当应用程序处于后台时,我应该使用MethodChannel打开一个活动来访问java,但我得到了以下错误: 在channel com.example.service/start上未找到方法openActivity的实现 Application.java package com.example.mobile; import io.flutter.app.FlutterApplicat

我在应用程序关闭时尝试打开android活动时失败。在下面的代码中可以看到,当我从firebase收到数据通知时,当应用程序处于后台时,我应该使用MethodChannel打开一个活动来访问java,但我得到了以下错误:

在channel com.example.service/start上未找到方法openActivity的实现

Application.java

package com.example.mobile;

import io.flutter.app.FlutterApplication;
import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback;
import io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin;
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService;

public class Application extends FlutterApplication implements PluginRegistrantCallback {
    @Override
    public void onCreate() {
        super.onCreate();
        FlutterFirebaseMessagingService.setPluginRegistrant(this);
    }

    @Override
    public void registerWith(PluginRegistry registry) {
        FirebaseMessagingPlugin.registerWith(registry.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
    }
}
AndroidManifest.xml

<application
        android:name="com.example.mobile.Application"
        android:label="mobile"
        android:icon="@mipmap/ic_launcher">
主飞镖

_firebaseMessaging.configure(
      onMessage: (message) async {
        //
      },
      onLaunch: (message) {
        //
      },
      onResume: (message) {
        //
      },
      onBackgroundMessage: myBackgroundMessageHandler,
    );

Future<dynamic> myBackgroundMessageHandler(Map<String, dynamic> message) async {
  MethodChannel channel = new MethodChannel("com.example.service/start");

  if (message.containsKey('data')) {
    final dynamic data = message['data'];

    var open = await channel.invokeMethod("openActivity");
  }
}
\u firebaseMessaging.configure(
onMessage:(消息)异步{
//
},
onLaunch:(消息){
//
},
onResume:(消息){
//
},
onBackgroundMessage:myBackgroundMessageHandler,
);
未来myBackgroundMessageHandler(映射消息)异步{
MethodChannel=newMethodChannel(“com.example.service/start”);
if(message.containsKey('data')){
最终动态数据=消息['data'];
var open=wait channel.invokeMethod(“openActivity”);
}
}

我哪里出了问题,如何才能使其正常工作?

在您的AndroidManifest.xml文件中,android:name必须是android:name=“.Application”,并确保MainActivity.java和Application.java位于同一文件夹中

您解决了这个问题吗?我也有同样的问题。谢谢
_firebaseMessaging.configure(
      onMessage: (message) async {
        //
      },
      onLaunch: (message) {
        //
      },
      onResume: (message) {
        //
      },
      onBackgroundMessage: myBackgroundMessageHandler,
    );

Future<dynamic> myBackgroundMessageHandler(Map<String, dynamic> message) async {
  MethodChannel channel = new MethodChannel("com.example.service/start");

  if (message.containsKey('data')) {
    final dynamic data = message['data'];

    var open = await channel.invokeMethod("openActivity");
  }
}