Flutter错误汇总

作者: Miaoz0070 | 来源:发表于2021-04-02 14:15 被阅读0次

    开发项目中Flutter问题总结

    1.packages/flutter_tools/gradle/module_plugin_loader.gradle' as it does not exit报错

    解决:

    这个问题直接flutter packages get ,可能是之前安装包添加依赖没有执行下载包引起。

    2.如果控制台使用dart-sdk里自带的工具命令出现command not found: dartdoc dartfmt dartanalyer类似这种的错误。

    解决:

    这种情况是路径不对,检查配置路径,如果是mac,在命令行窗口运行下ls $PATH,看下有没有/dart-sdk/bin目录,如果没有需要.bash_profile去配置下并启动生效source .zshrc。如果是windows,直接去打开环境变量确认下是否有dart-sdk/bin路径。

    3.在pubspec中增加dependencies后,如果不自动下载依赖包,需要手动下载依赖包,否则运行报错。

    解决:

    flutter packages get
    flutter packages upgrade
    

    4.error: Undefined name 'required' used as an annotation. (undefined_annotation at main.dart:9)

    解决:

    Required 在元包中被定义。或者直接使用 import package:meta/meta.dart 导入或者导入其他包含 meta 导出的包,例如 Flutter 的包 Flutter /material.dart。

    5.Because new_trend depends on build_runner >=0.9.0 which requires SDK version >=2.0.0-dev.61 <3.0.0, version solving failed.

    pub get failed (1)

    解决:

    pubspec.yaml中对应的依赖版本号改为any,更新后,再在pubspec.lock中找到对应版本号替换any。

    5. 打印:Flutter list return Instance of

    解决:

    在使用Flutter开发时,打印对象,总是出现Instance of,原因是没有在bean里重写toString()方法。Flutter list return Instance of

    6.Xcode12 iOS14 AppDelegate 调用startFlutterWithPlatform应用会崩溃,Debug启动会闪退。

    解决:

    这是fluttersdk版本问题引起,1.22版本已经修复,但是我们使用的是flutter_boost,目前使用过程中为了不升级flutter 或者 flutter_boost 在Xcode User-Defined 添加一项FLUTTER_BUILD_MODE= release 可以先使用到起,等官方适配后再切回来。但是flutter代码断点调试就不能用了,我目前选择的还是用之前的xcode开发。

    参考:https://github.com/alibaba/flutter_boost/issues/871

    7.Android 老的项目接入时,报错误Cause: assert appProject != null

    解决:

    历史项目的主 Module 是 名字 更换为 app 即可。

    8.AndroidStudio编译时报错:Timeout waiting to lock artifact cache 。。。

    解决:

    Android Studio ->File -> Invalidate Caches/Restart ->Invalidate and Restart

    9.如果加载本地文件报错VERBOSE-2:ui_dart_state.cc(157)] Unhandled Exception: Unable to load asset: assets/data/car_models.json。

    解决:

    找不到该文件,需要在pubspec.yaml中,assets:下添加 - assets/data/

    assets

    10.No Material widget found 问题

    解决:

    需要Scaffold作为根布局,意为用Scaffold包裹起来即可。

    @override
    Widget build(BuildContext context) {
      return new Scaffold( //Material组件
        body: Container()
      );
    }
    

    11.Flutter Dart 报错 ‘_InternalLinkedHashMap dynamic, dynamic‘ is not a subtype of type‘

    解决方式:new Map<String, dynamic>.from(params)

    12.RenderBox was not laid out: RenderFlex#1cf8a relayoutBoundary=up9 NEEDS-PAINT 'package:flutter/src/rendering/box.dart': Failed assertion: line 1694 pos 12: 'hasSize'

    解决: 两个ScrollView嵌套造成计算高度错误。

    13.使用Getx的时候,改变数组里对象属性时页面不刷新。

    解决:

    使用数组.refresh();

    14. 混合传值和回传问题

    1.flutter boost:bool值问题 和 Map问题,传递数据类型尽量使用String。

    15.域名代理测试问题

    解决:

    使用代理测试时,会有问题。1.Android问题可能第一次会出现接口问题。 2.部分第三方比如图片问题,会访问不到,使用switchhost转换不了指定域名,会访问线上。

    16.flutter boost Android 监听(FlutterBoost.singleton.channel.addEventListener)和通道(MethodChannel)时机问题,有时FlutterBoost没有注册成功,会造成Native和Flutter传递数据失败问题。

    解决:

    1.通道(MethodChannel)这个需要在Native中引擎注册成功后回调方法里调用,但是部分手机不行(三星),获取不到。使用时候谨慎。

    2.使用提供的监听通知(addEventListener、sendEvent)时,Android第一次会出现接收不到,不成成功情况,需要FlutterBoost所有方法执行完后,自己新增一个监听事件initPlugin,告知Native可以send数据过来,否则还是会因为时机先后问题造成错误。

    17.flutter页面切换到主页的tab中的某一个控制器,且该控制器里边添加了Flutter的FlutterContainer切片(原生控制器中既有原生页面又有flutter页面)场景,会出现flutter页面被压缩变形情况。(iOS问题)

    解决:

    每次切换的时候需要重新设置frame或者Constraints。

    18.# [Invalid Podfile file: cannot load such file -- ../flutter_module/.ios/Flutter/podhelper.rb.]

    解决:

    进入到Flutter_module工程,执行 flutter clean,flutter pub get,然后回到iOS工程里面,执行 Pod install即可。

    相关文章

      网友评论

        本文标题:Flutter错误汇总

        本文链接:https://www.haomeiwen.com/subject/wtjbdktx.html