Flutter项目卡死
使用"flutter doctor"命令常见会出问题的就是Android toolchain和Xcode,这两个问题的解决方式在报错中的英文提示都有写明,存在issue时前面会是"[!]",解决完毕后变成如图所示即代表成功,这样创建Flutter项目即可流畅运行
红屏
Flutter项目运行时如果有错不会crash,而是显示红屏。如果代码有问题则修改正确逻辑,如果代码没有问题可以点击后面这个绿色的小图标即可正常运行。前面的黄色闪电图标则用于快速热构建,如果你不想每次都按绿色的按钮重新执行的话,这是一个很便捷的选项
资源assets
当你在引入资源时,如果未能成功运行预期结果,首先看是否在pubspec.yaml文件中进行注册,如果你已经注册还未能显示,则要注意assets前要加空格,assets不能和flutter同级,assets下面的资源引入里,"-"后也要加空格。一个yaml文件中,一个层级只能有一个flutter,引入资源的flutter为最顶级的flutter,如果你前面的步骤都做对了,最后还没有成功加载资源,最大可能问题就出在这里
Flutter目录下gradle报错
这个问题似乎不影响编译,如果你是强迫症,改成下面这样就好
flutter clean
这个命令用于清除一些依赖降低内存,执行时工程会标红,但是不用担心,你在点击绿色按钮运行时项目会自动重新引入所需的依赖
AndroidManifest文件报错
如果你是新创建的Flutter项目,在你的项目中,应该会看到AndroidManifest文件有如此多的报错,以至于你根本无法在MainActivity中编写原生代码,是因为Flutter禁用了Android框架,你需要右键点开下图所示,在一个新的窗口中打开android工程即可编写原生代码
registerWith(this)报错
新版本此方法无法解析,要改成registerWith(new FlutterEngine(this));
无法使用getFlutterView()
我们获取MethodChannel时,要传进BinaryMessenger,但是由于MainActivity继承的FlutterActivity在io.flutter.embedding.android包下,这个包里没有getFlutterView()方法,所以不能使用getFlutterView()获取BinaryMessenger,只有io.flutter.app.FlutterActivity包的FlutterActivity才有getFlutterView()方法。既然如此,那么我们就需要把getFlutterView()方法改成getFlutterEngine().getDartExecutor().getBinaryMessenger()即可
2021.7.27记录,后续若有问题则继续更新