Flutter 实战中所遇坑与填
2020-12-09 本文已影响0人
技术混子
timg.jpeg
实战过程中所遇的各种小问题在这里记录下,希望对正在迷茫中的童鞋有所帮助 (记得点个👍) ---- 码农一家亲
Top 1 -> ( channel error xxx channel ,null)
思路 前往Android Studio -> Project -> Android ->io.flutter 文件下,
查看 channel 通道卡在哪一步,来具体解决问题,例如
我的是引入支付宝后 引发的 video相关 的chanel null问题
发现 卡在 (com.javern.tobias ),
解决办法便是:
flutter SDK ->packages ->flutter tools -> gradle ->flutter.gradle :google() mavenCentral() jcenter()
提示版本问题
更改此处版本(ext.kotlin_version :1.3.72,Gradle 4.9),
若是报错
"Unhandled Exception: MissingPluginException(No implementation found for method isAliPayInstalled on channel com.jarvanmo/Tobias)"
就在android -> app -> build.gradle 中
android{
packagingOptions {exclude 'META-INF/proguard/coroutines.pro' } //添加此行代码
}
即可
Top 2 -> “Waiting for another flutter command to release the startup lock...Waiting for another flutter command to release the startup lock…”
解决办法:
第一种:终端杀死其他任务 “killall -9 dart”
第二种:在手机端进入开发者选项,将’仅充电’允许调试 打开
第三种:打开Android Studio 等待加载完就OK了
Top 3 -> flutter首次运行iOS Pod库丢失
1.升级cocoaPods
sudo gem install cocoapods
2.Podfile 添加
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, ‘8.0’
3.系统终端 pod repo remove trunk
4.系统终端 cd flutter中的ios文件
5.系统终端 pod install
搞定!!!!!
Top 4 -> 安卓包残留
清除 安卓内残留apk安装包
adb uninstall com.example.spanners
若是未安装adb
一行代码 安装brew 终端输入 回车
/bin/zsh -c "$(curl -fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
Top 5 -> Pop回上一级页面,刷新上一级页面
Navigator.push(context,MaterialPageRoute(
builder: (context) => EditCar()))
.then((value) => _memberDetailRequst());//刷新数据方法
Top 6 -> TextFormField 中 setValue(){ //刷新动作 } 导致光标位置异常与删除超出界限提示
将光标设置在最后即可解决
TextFormField(
// controller: //priceController,
controller: TextEditingController.fromValue(
TextEditingValue(
// 设置内容
text: valuePrice,
// 保持光标在最后
selection: TextSelection.fromPosition(
TextPosition(
affinity: TextAffinity.downstream,
offset: valuePrice.length)))),
)
Top 7 -> did not find header 'Flutter.h' in framework 'Flutter'
解决办法
1.新建一个flutter 项目或者从老的flutter项目
2.copy iOS/flutter 下的这些文件到到原来的项目
-flutter_export_environment.sh
-Flutter.framework
-Flutter.podspec
3.flutter clean
4.flutter run
Top 8 -> 多行(动态添加)TextFormField ,刷新 指定赋值
TextEditingController.fromValue(
TextEditingValue(
text:
/* 默认值逻辑*/
secondName[index.toString()])),
Top 9 -> 提示界面未构建完成之前实现了某些动作,可根据错误提示找到问题出然后加上延迟处理
WidgetsBinding.instance.addPostFrameCallback((_) {setState(() { });});
Top 10 -> 高德地图
IOS:定位好用,地图不展示或者黑屏,需要设置地图map的宽高,注意检查是否是column嵌套listview,或者stack嵌套,据此更改
Android:本人是iOS开发,对安卓不熟导致更换keystore后没有及时去高德api修改SHA1,致使relesae下高德地图爆key验证错误,在此记录一下