这是【Flutter 问题系列第 30 篇】,如果觉得有用的话,欢迎关注专栏。
一:问题描述
在使用 Flutter 和 Android 混合开发时,我需要获取到手机目前的电量,在 MainActivity 类重写 FlutterActivity 类的 onCreate 方法时,当时是这样写的(已省去无关代码)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(new FlutterEngine(this));
}
在程序启动后就报错了,如下图所示 其中关键错误代码提示是
ensureInitializationComplete must be called after startInitialization
,意思是确保已经初始化完成,否则请在 startInitialization 之后再操作。
二:解决方案
根据该错误提示,最终在 stack overflow 找到了答案,这是原文链接 。
只需在 super.onCreate(savedInstanceState)
执行前,添加一行代码即可,如下所示
@Override
public void onCreate(Bundle savedInstanceState) {
FlutterMain.startInitialization(this);
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(new FlutterEngine(this));
}
此时再运行就没什么问题了。
你的问题得到解决了吗?欢迎在评论区留言。
赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。
结束语 Google 的 Flutter 越来越火,截止 2021年7月11日 GitHub 标星已达 124K,Flutter 毅然是一种趋势,所以作为前端开发者,没有理由不趁早去学习。 无论你是 Flutter 新手还是已经入门了,不妨先点个关注,后续我会将 Flutter 中的常用组件(含有源码分析、组件的用法及注意事项)以及可能遇到的问题写到 CSDN 博客中,希望自己学习的同时,也可以帮助更多的人。