• 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),

    持续踩坑中。。。

  • 相关阅读:
    CodeForces 785D Anton and School
    CodeForces 785C Anton and Fairy Tale
    CodeForces 785B Anton and Classes
    CodeForces 785A Anton and Polyhedrons
    爱奇艺全国高校算法大赛初赛C
    爱奇艺全国高校算法大赛初赛B
    爱奇艺全国高校算法大赛初赛A
    EOJ 3265 七巧板
    EOJ 3256 拼音魔法
    EOJ 3262 黑心啤酒厂
  • 原文地址:https://www.cnblogs.com/liuwenqiang/p/10858477.html
Copyright © 2020-2023  润新知