前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter实际开发bug总结

Flutter实际开发bug总结

作者头像
rhyme_lph
发布2019-08-16 16:31:51
4.5K1
发布2019-08-16 16:31:51
举报
文章被收录于专栏:Flutter&DartFlutter&Dart

目录

1.1 安卓release包缺少libflutter.so 1.2 AndroidStudio导入项目后自动变为model,没有Flutter目录 1.3 输入框内容为空时,长按不显示粘贴工具栏 1.4 SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0, 4.2 1.5 复制粘贴面板英文的问题 1.6 调用库的时候报Methods marked with @UiThread must be executed on the main thread.Current thread: XXXX 1.7 用Navigator.of(context).pushNamed(routeName)如何传递参数

1.1 安卓release包缺少libflutter.so

修改/android/app/build.gradle文件如下

代码语言:javascript
复制
android{
    defaultConfig{
        ndk {
            abiFilters "armeabi-v7a", "x86"
       }
    }
    buildTypes {
          debug {
              ndk {
                abiFilters "armeabi-v7a", "x86"
              }
          }
          release {
              ndk {
                 abiFilters "armeabi-v7a"
              }   
         }
    }
}
1.2 AndroidStudio导入项目后自动变为model,没有Flutter目录

image.png

解决方法: 在导入项目时选择下面选项 File-Open-选中你的项目

1.3 输入框内容为空时,长按不显示粘贴工具栏

将输入框中的autoFocus属性为ture去掉

1.4 SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0, 4.2

将项目打开为ios项目,然后在文件列面中找到Pods(建议升级xcode即可解决)

image.png

1.5 复制粘贴面板英文的问题

pubspec.yaml添加国际化支持,然后运行flutter packages get

代码语言:javascript
复制
dependencies:
  ...
  flutter_localizations:
    sdk: flutter

找到代码MaterialApp或者CupertinoApp或者WidgetsApp的文件,添加下面代码即可

代码语言:javascript
复制
        MaterialApp(
//...
//new
                localizationsDelegates: const [
                  GlobalMaterialLocalizations.delegate,
                  GlobalWidgetsLocalizations.delegate
                ],
                supportedLocales:[
                  Locale('zh',''),
                  Locale('en','')
                ],
//new
              )
1.6 调用库的时候报Methods marked with @UiThread must be executed on the main thread.Current thread: XXXX

出现该异常的主要原因是Flutter1.7.8版本添加了线程安全,需要原生在主线程中返回给Flutter 解决方法:

  • 库的问题? 到pub库中找到最新的版本,更改最新的版本,然后运行flutter packages get
  • 自己写的库问题? 假如:
代码语言:javascript
复制
//Result result  flutter的result
new Thread(new Runnable() {
      public void run() {
//.....
result.success(null);//这里就会导致异常
     }).start();

改为

代码语言:javascript
复制
//Result result  flutter的result
new Thread(new Runnable() {
      public void run() {
//.....
    new Handler().post(new Runnable() {
                @Override
                public void run() {
                    result.success(file.getAbsolutePath());
                }
            });
     }).start();

上面是伪代码,不建议这样做,可能会导致内存溢出

1.7 用Navigator.of(context).pushNamed(routeName)如何传递参数

传递参数

代码语言:javascript
复制
Navigator.of(context).pushNamed(routeName,arguments:{
  “name":"我是参数"
})

获取参数

代码语言:javascript
复制
final arguments=ModalRoute.of(context).settings.arguments;

欢迎在评论区留下你的bug问题,在线修bug

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.08.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
    • 1.1 安卓release包缺少libflutter.so
      • 1.2 AndroidStudio导入项目后自动变为model,没有Flutter目录
        • 1.3 输入框内容为空时,长按不显示粘贴工具栏
          • 1.4 SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0, 4.2
            • 1.5 复制粘贴面板英文的问题
              • 1.6 调用库的时候报Methods marked with @UiThread must be executed on the main thread.Current thread: XXXX
                • 1.7 用Navigator.of(context).pushNamed(routeName)如何传递参数
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档