Flutter "No implementation found for method xxxx on channel"错误

之前出现这种问题参考网上的找到的最多的办法:

1、clean一下
2、再运行flutter pub get
3、然后退出as
4、重新打开as,再run,OK了

但是后来新添加一个package后又出现了这种问题,然后再怎么执行上边的步骤都不管用了,网上查了好久各种方法都试过,还是不行,最后结合了一下搜到的方法,可以了,具体原理咱也不知道。。。

修改Android的MainActivity中的代码

具体代码如下:

import android.annotation.SuppressLint;
import android.os.Bundle;
// 重点1
import io.flutter.embedding.android.FlutterActivity;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.plugin.common.MethodChannel;
import androidx.annotation.NonNull;
import io.flutter.plugins.GeneratedPluginRegistrant;

public class MainActivity extends FlutterActivity {

    private String flutterMethodChannelName = "flutterCallbackMethodChannel";
    MethodChannel methodChannel_callFlutter;

    @SuppressLint("NewApi")
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        methodChannel_callFlutter = new 
        // 重点2
        MethodChannel(getFlutterEngine().getDartExecutor().getBinaryMessenger(), flutterMethodChannelName);
    }

    public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
        // 重点3
        super.configureFlutterEngine(flutterEngine);
        GeneratedPluginRegistrant.registerWith(flutterEngine);
    }
}

注意点:
1、import io.flutter.embedding.android.FlutterActivity;
2、onCreate方法中flutterEngine.dartExecutor.binaryMessenger现在无法获取到了,需要修改为getFlutterEngine().getDartExecutor().getBinaryMessenger()
3、configureFlutterEngine方法中必须调用父类的方法,即:super.configureFlutterEngine(flutterEngine);

如果你的代码中没有这些方法,那么直接拷过去就完事儿了。

因为这个破问题,我差点直接放弃flutter了,太难了,网上连个资料都找不到,干!

记录一下,希望可以帮到跟我一样被flutter虐过的人!

Just Do IT!

参考资料:
1、flutter和Android混编下出现“No implementation found for method xxxx on channel”错误
2、Flutter 碰到的各种坑 持续更新

你可能感兴趣的:(Flutter "No implementation found for method xxxx on channel"错误)