移动客户端

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验证错误,在此记录一下

上一篇下一篇

猜你喜欢

热点阅读