实操指南:体验OpenIMFlutterDemo的运行与搭建步骤
前言:好久没怎么研究过技术了,最近不忙了,继续捡起之前玩过的flutter来学习下,本来只是随便跑一个demo学习下,结果发现一路都是坑,特记录一下
一、准备安装环境
入门: 在macOS上搭建Flutter开发环境
1.1、讲flutter克隆到本地上git clone https://github.com/flutter/flutter.git
1.2 配置flutter克隆后的文件夹下环境path 文件~/.bash_profileexport PATH=/xxx/xxx/flutter/bin:$PATH
source ~/.bash_profile
1.3 iOS配置cocoapods、安装xcode过程略
1.4 Android下载Android studio过程略
二、正式运行demo
地址:OpenIMFlutterDemo:https://github.com/hrxiang/OpenIMFlutterDemo
2.1 iOS
下载好后准备运行iOS模拟器,结果运行后发现swift写的各种库报错,以及一些方法找不到,截图如下
经过查看issues,发现作者有回复说目前iOS版本还不能使用,只能先放弃
https://github.com/OpenIMSDK/Open-IM-SDK-Flutter/issues/17
2.2 Android
2.2.1 运行demo报的第一个错误
pub get failed (66; Because eechart depends on flutter_openim_sdk from path
which doesn't exist (could not find package flutter_openim_sdk at
"../Open-IM-SDK-Flutter"), version solving failed.)
原因是demo里pubspec.yaml
直接使用了引入相对文件夹的方式引入Open-IM-SDK-Flutter
,这可能是作者本地调试时这样写比较方便,但一般用户本地没有这样的文件,只需要将这个库配置成git远程的方式就可以了
讲path: ../Open-IM-SDK-Flutter
改成git: url: https://github.com/hrxiang/flutter_background.git
, 如下图
2.2.2 找不到assets/data,这个错不影响运行,在pubspec.yaml
注释掉即可
Error: unable to find directory entry in pubspec.yaml: /xxx/xxx/OpenIMFlutterDemo/assets/data/
2.2.3 Error: The argument type 'PointerEvent' can't be assigned to the parameter type 'PointerDownEvent'.
../../../../../.pub-cache/hosted/pub.dartlang.org/photo_view-0.11.1/lib/src/core/photo_view_gesture_detector.dart:106:29: Error: The argument type 'PointerEvent' can't be assigned to the parameter type 'PointerDownEvent'.
- 'PointerEvent' is from 'package:flutter/src/gestures/events.dart' ('../../../../flutterSDK/flutter/packages/flutter/lib/src/gestures/events.dart').
- 'PointerDownEvent' is from 'package:flutter/src/gestures/events.dart' ('../../../../flutterSDK/flutter/packages/flutter/lib/src/gestures/events.dart').
super.addAllowedPointer(event);
这个问题是因为引入的库photo_view
版本有更新,demo里pubspec.yaml
引入的是photo_view: ^0.11.1
,改成photo_view: ^0.12.0
即可
查询库的最新版本网站:https://pub.flutter-io.cn/packages
2.2.4
/xxx/xxx/OpenIMFlutterDemo/build/flutter_openim_sdk/intermediates/local_only_symbol_list/debug/R-def.txt' specified for property 'localResourcesFile' does not exist
解决方案:关闭debug模式下的混淆开关shrinkResources true
结果:虽然历经断断续续好几天查找资料,终于在Oppo真机上运行起来了,接下来就可以继续里面的实质内容的学习了
付上Oppo开启调试模式的方式:
设置- >关于手机->版本号 快速多次点击
https://zhidao.baidu.com/question/1579785803788728860.html
推荐阅读
-
实操指南:单细胞数据分析——跟随Seurat流程的步骤再现与应用
-
实操指南:体验OpenIMFlutterDemo的运行与搭建步骤
-
前端搭建指南:调试本地开发环境的实用技巧 - 在CLI脚手架项目里,别忘了添加库文件及其版本依赖 1. 实时联动与修改: a) 首先确保在当前CLI脚手架项目的`package.json`依赖中加入所用库文件及其正确版本。 b) 通过npm link在本地创建硬连接,使得库与项目能实时修改、同步。运行如下命令: ``` $ cd your-lib-dir $ npm link $ cd your-cli-dir $ npm link your-lib ``` 2. 模拟部署环境: 当需测试线上环境时,解除本地软链接。回到库文件目录并执行: ``` $ cd your-lib-dir $ npm unlink ``` 同样,在CLI项目目录执行: ``` $ cd your-cli-dir $ npm uninstall your-lib --save ``` 注意此时可能会出现因缺少库文件依赖导致的错误,但可暂且忽略,这样能避免将来遗漏或重复安装的问题。 3. 发布后的操作: 如果库已上线,可先清空CLI项目的`node_modules`目录(`rm -rf node_modules`),然后重新安装所有依赖: ``` $ npm install ``` 通过以上步骤,您就能顺畅地调试和部署您的脚手架项目了。 总结 `link` & `unlink` 命令的运用: 1. `npm link`:在本地创建硬连接,便于实时协作与同步。 2. `npm unlink`:模拟线上环境并解除软链接,为正式部署做准备。
-
实操指南:基于PHP与百度网盘开发平台API的高级实战示例解析 - 包含部署环境、PHP封装类、Access Token获取、预上传及分片上传步骤详解
-
使用JavaWeb、SSM和Vue开发微信小程序生鲜云订单零售系统的实操指南与详细步骤-Lun文目录