Flutter报错汇总(全网最全)

1.Flutter-Multiple commands produce

Flutter-Multiple commands produce

问题分析

使用Xcode 10构建所有Flutter项目都会有该问题。在使用插件时,有两个竞争构建操作将Flutter.framework复制到构建应用程序Frameworks目录中:

解决方案

①.将XCODE的编译系统改为legacy build system,如下图所示

Flutter报错汇总(全网最全)_第1张图片
legacy build system

②.使用新的Xcode 10构建系统。

  • 打开ios / Runner.xcworkspace
  • 在项目导航器侧栏中选择Runner项目。
  • 在主视图中,选择Runner目标,然后选择Build Phases选项卡。
  • 展开Embed Frameworks阶段并从嵌入式框架列表中选择Flutter.framework。
  • 单击 - 从列表中删除Flutter.framework(确保保留App.framework)。

2.进行Flutter开发时,设备连接一直显示loading…

1、先连接网络(在打开flutter工程时好像需要检查什么东西,所以尽量在有网的情况下打开,等可以调试了再断网应该也没问题)
2、在任务管理器的详细信息中,关闭所有的dart进程(关闭卡死的进程,避免在下次运行命令时进程被锁)
3、重启开发工具(重启)

3. Gradle task assembleDebug failed with exit code 1

解决方案

  • 终端执行

flutter clean

重新运行run

4.Waiting for another flutter command to release the startup lock

原因分析:

这个错误发生于在编译器里get package,等了很久没有获取到package之后,我果断关掉了AS,打开终端输入了flutter doctor但是出现了这个错误。

解决方法如下:flutter/bin/cache/lockfile

  • 打开flutter的安装目录/bin/cache/
  • 删除lockfile文件
  • 重启AndroidStudio

5. The 'Pods-Runner' target has transitive dependencies

原因:

打包iOS 时 使用了flutter_flipperkit 这个插件,就会报错,移除掉该插件就好了,这个插件之针对Andropid 调试使用

5.IOS上打包后出现could not create Dart VM

因为你没有生成flutter_assets相关文件,所以导致Dart代码没有打进包里

解决方法:在打包前运行一下命令,生成的文件不用管,继续你的操作

flutter build ios --release

6.use_frameworks报错

use_frameworks!-> dynamic frameworks 方式 -> .framework
#use_frameworks! -> static libraries 方式 -> .a
oc工程的podfile一般是不使用use_frameworks!的,swift和自己创建的lib库是默认有的

7.设备的CPU架构

模拟器:

  • 4s~5 : i386
  • 5s~6plus : x86_64

真机:

  • 3gs~4s : armv7
  • 5~5c : armv7s (静态库只要支持了armv7,就可以跑在armv7s的架构上)
  • 5s~6plus : arm64

8.Flutter Navigator.pop 报错 _debugLocked isNotTrue

解决办法:

1.1.Using .isFirst method:

Navigator.of(context).popUntil((route) => route.isFirst);

1.2. Using defaultRouteName:

Navigator.popUntil(context, ModalRoute.withName(Navigator.defaultRouteName));

9.'_positions.isNotEmpty': ScrollController not attached to any scroll views.

// 滑动卡片
ScrollController _cardScontroller = ScrollController();
void toBottom() {
    Future.delayed(Duration(milliseconds: 0), () {
      if (_cardScontroller.hasClients){
        /// 滑动到底部
        _cardScontroller.jumpTo(_cardScontroller.position.maxScrollExtent);
      }
    });
  }

10.Run Configuration Error: Broken configuration due to unavailable plugin or invalid configuration data.

原因分析:

Flutter 插件未找到,导致无法以Dart方式启动

Flutter报错汇总(全网最全)_第2张图片
效果图

解决办法:
选择-Preferences-Plugins-> 打开Flutter选项,restart AndroidStudio,即可。

11.INSTALL_FAILED_USER_RESTRICTED: Install canceled by user Error: ADB exited with exit code 1

直接使用Android studio run 到小米设备的时候遇到上述问题

原因:小米在mi-ui10 上加了 usb 安装 apk 的限制。

解决办法:

  • 设置==》更多设置==》开发者选项》USB安装
  • 打开即可,注意打开这个要登录小米账号才行。
  • 在手机上点击继续安装即可(第一次安装需要)

12.Waiting for another flutter command to release the startup lock… 异常解决

cd /Users/xxx/flutter/bin/cache/

删除 lockfile文件即可

13.BUILD TARGET url_launcher OF PROJECT Pods WITH CONFIGURATION Debug

报错明细

=== BUILD TARGET url_launcher OF PROJECT Pods WITH CONFIGURATION Debug ===

    /Users/liyan/software/flutter/.pub-cache/hosted/pub.flutter-io.cn/simple_permissions-0.1.9/ios/Classes/SimplePermissionsPlugin.m:2:9: fatal error: 'simple_permissions/simple_permissions-Swift.h' file not found

    #import 

            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    1 error generated.

原因分析

进入flutter_project/ios/,编辑Podfile,添加

use_frameworks!
关键是use_frameworks!

13.数据模型解析时无法定位是哪个属性报错

原因分析

因为使用了try catch 导致无法具体定位

解决办法

注释掉try catch 即可

举例

'List' is not a subtype of type 'String'

数据类型本来是List ,你定义成了 String

 ///获取匹配成功列表(匹配历史)()
  static Future getPairHistoryList() async {
    try {
      var r = await httpManager.request2(
        '$base/get_pair_list',
        isStubApi: true,
      );
      List list = [];
      r.data['enrolls'].forEach((friend) {
        list.add(PairEnrollModel.fromJson(friend));
      });

      return DaoResponse>(
          data: list, code: r.code, message: r.message);
    } catch (e) {
      print('==========${e.toString()}');
      throw DaoException(e);
    }
  }

14.Failed to open or create the artifact cache lockfile

问题描述

Flutter OS Error: Permission denied, errno = 13,
Failed to open or create the artifact cache lockfile

问题分析

flutter lockfile 路径没有权限,需要给他制定权限

执行以下命令

sudo chmod -R 755 /Users/hujintao/flutter/bin/cache/lockfile
# 并且删除掉 lockfie文件,重启即可
rm -r ./lockfile

你可能感兴趣的:(Flutter报错汇总(全网最全))