之前出现这种问题参考网上的找到的最多的办法:
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 碰到的各种坑 持续更新
网友评论