flutter开发将项目从flutter版本3.19.6升级到3.24.3过程遇到问题记录Type 'UnmodifiableUint8ListView' not found

1. android studio修改当个项目的flutter版本,不影响其他项目工程的flutter编译版本

1.1 项目右上角点击‘设置’图标,选择Settings...进去到项目的设置页面,选择flutter sdk路径

1.2 项目右上角点击‘设置’图标,选择Settings...进去到项目的设置页面,选择dart sdk路径

2. 点开打开项目根目录下的pubspec.yaml文件

2.1 右上角会出现Pub get按钮,点击同步更新依赖

  • 也可以通过cmd命令行执行:来到项目根目录下,执行flutter pub get

2.2 可能出现依赖冲突,这里提供两个解决方法

  • 方法1:依赖库版本冲突,可以先给该依赖库版本指定为any,比如url_launcher: any,然后执行pub get看看实际下载的是哪个版本的url_launcher,然后再将any改为具体的版本。
  • 方法2:如果方法使用了还是出现依赖冲突编译失败,可以使用dependency_overrides关键字,强制依赖某个具体的版本,比如:
      dependency_overrides:
        url_launcher: ^6.3.0  #多个版本冲突时,具体使用哪个版本,主要看哪个版本能编译通过,然后看主模块使用哪个版本,然后看哪个版本是重要的,如果没啥区别就使用高版本的吧,毕竟在做升级工作
    
  • 方法3:那就是如果能拿到源代码的话,就把源代码拿下来修改了,把在线依赖改为使用本地依赖了,不过这个一般没必要这样,后续升级维护工作量变多了

2.3 如果依赖库的依赖出现冲突怎么办?项目里面都搜索不出哪里使用了,这个时候就得想方法整理出依赖库之间的依赖关系了

  • 解决方法:cmd来到项目的根目录下执行flutter pub deps,比如命令,将在项目根目录下生成deps.txt文件,依赖关系树状形式显示出来,哪个库依赖了哪个一目了然

3. 其他问题记录

3.1 问题1:Error during compilation of a Flutter app for Windows: Type 'UnmodifiableUint8ListView' not found

  • 解决方法:执行flutter pub upgrade --major-versions

3.2 问题2:编译构建成功了,运行的时候报错,看着是缓存的原因,部分代码索引不到,点击跳转不过去或者跳转到之前旧的依赖库里面

  • 解决方法:清除缓存,重新下载依赖库,先执行flutter pub cache clean,然后执行flutter pub get
posted @ 2024-09-19 16:37  yongfengnice  阅读(30)  评论(0编辑  收藏  举报