zoukankan      html  css  js  c++  java
  • flutter 踩坑总结

    导入第三方库踩坑小结:

    (编译器:VsCode)

    ( 打算在学习中,使用flutter重新自己的项目,遇到比较特殊的坑,就先记录一下,持续更新中)

    1.把第三方库 写入pubspec.yaml文件中

    dependencies:
      flutter:
        sdk: flutter
    
      # The following adds the Cupertino Icons font to your application.
      # Use with the CupertinoIcons class for iOS style icons.
      cupertino_icons: ^0.1.2
      english_words: ^3.1.0
      
    dev_dependencies:
      flutter_test:
        sdk: flutter

    2.在底部终端 运行:

    flutter packages get

    或点击右上角的 Get Packages 按钮

     运行结果:

    Running "flutter packages get" in lwflutterapp...                   0.6s

     3.之后 在main.dart 文件中 导入

    import 'package:english_words/english_words.dart';

    发现报错,如图:

    原因: 依赖库没有成功导入,可以看一下刚才上面的导入时间只有0.6s,一般不会这么快,

    坑1.:把第三方库的名字写入文件后,忘记保存,直接运行了 flutter packages get,

    坑2:当保存之后,再次加载第三方库,发现会一直卡在这个地方,等半天也没有结束

    原因: storage.googleapis.com 撞墙了,

    解决方式:

    1:配置一下环境变量
    
    Linux 或 Mac:
    
    export PUB_HOSTED_URL=https://pub.flutter-io.cn
    export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
    
    Windows:
    
    PUB_HOSTED_URL ===== https://pub.flutter-io.cn
    FLUTTER_STORAGE_BASE_URL ===== https://storage.flutter-io.cn

    2:执行一下 flutter doctor -v 命令。(可有可无)

    3:然后再执行 flutter packages get

    坑3:当你配置完环境变量之后,再次运行  flutter packages get的时候发现,flutter的文件是被锁状态,因为有一个任务一直未完成状态,就是刚才卡死的那个任务,

    终端显示:

    Waiting for another flutter command to release the startup lock...

    解决方法,如下: 

      1、打开flutter的安装目录/bin/cache/  ( /usr/local/flutter/bin/cache)

      2、删除lockfile文件 

      3、重启vsCode

    (补充: 如果还不行,请先检查安装的flutter目录下./flutter/bin/cache/路径下是否已经有个lockfile文件存在了,因为我使用的是vscode下面的终端窗口,有时即使线程被占用了,但是不会像电脑终端一样会有提示信息,被坑过!)

    然后就可以 正常的导入第三方了(需要几分钟的时间),导入的头文件也不会再保存了,

    坑4:真机运行时:报错 Error connecting to the service protocol: HttpException: , uri = http://127.0.0.1:1024/ws

    网上有人说:这种情况,一般是调试iOS真机的情况会出现,打开Xcode->Window->Devices and Simulators,将Connect via network取消

    但是我的本来就是取消状态,所有对我无效,

    我杀死进程后,就运行成功了,

    坑5:数据转模型对象

     刚开始使用的是网上说的 第三方框架  json_annotation: ^2.0.0,这个框架会自动生成一个与model.dart文件对应的model.g.dart文件,但是比较蛋疼的就是model类的属性,你需要一个一个的手写,如果少了还行,多了就很蛋疼了。所有弃用了,

    由于vscode的插件比较少,所有我使用在线工具 https://javiercbk.github.io/json_to_dart/,这个在线工具就可以根据json,自动生成一套转模型的代码,只需要改一下类名就行了,但是。。还有坑。由于 自动生成的代码里,在赋值那一块没有对类型就行强转,就造成了 int和double的混乱,经常会报 int 和 double之间的类型错误。这是就需要根据数据的实际情况手动添加强转 代码(as int 或 as double),

    持续踩坑中。。。

  • 相关阅读:
    mabatis配置文件yml配置打印sql
    java使用validator检验bean
    vue项目 老是报错 气的我就不行
    注入为空
    软件测试基础
    单元测试实战
    软件测试基础
    For循环案例---九九乘法表
    软件测试基础
    软件测试基础
  • 原文地址:https://www.cnblogs.com/liuwenqiang/p/10858477.html
Copyright © 2011-2022 走看看