Flutter安装

  1. 安装
    参考了大佬的安装教程,包含安装flutter插件和Dart插件:https://blog.csdn.net/qq_43652113/article/details/109147765
  2. 添加设备
    添加设备,可以在Android studio 中右上角点击AVD Manage 选择一个设备进行下载,等待
  3. 启动
    设备添加完毕,直接点击启动,即可以看到官方提供的模板
  4. 使用:
    1. 在项目路径 ->  cmd ->  flutter pub get (类型于npm install)
    2. 启动项目(flutter run /  Android studio 小绿标)中可能会报错:大概内容是connection timed out:connect
      解决办法:下载gradle-6.3-all.zip压缩包
      修改配置文件:android\gradle\wrapper
    3. E:\lolordProject\04-Activity\00-SourceCode\eventChckApp\eventapp\android\gradle\wrapper\gradle-wrapper.properties   ->  file:/F://flutter/gradle-6.3-all.zip

Flutter依赖

  1. 在根目录下找到pubspec.yaml文件
  2. 找到dependencies
    dependencies:
      flutter:
        sdk: flutter
     
     
      # The following adds the Cupertino Icons font to your application.
      # Use with the CupertinoIcons class for iOS style icons.
      cupertino_icons: ^1.0.0
      english_words: ^3.1.0    //我要添加的依赖
  3. 在terminal执行:flutter packages get,等待即可

Flutter 打包

  • flutter build apk --debug

所遇到问题

        在添加图片的时候,一直提示找不到图片;

  1. 在根目录下创建images文件夹
  2.  
  3. pubspec.yaml文件进行配置

 在启动时遇到一个错误:Execution failed for task ':app:mergeDexDebug'.

解决办法:在android/app/build.gradle文件中加入代码:

dependencies {
  compile 'com.android.support:multidex:1.0.3' 
  //find latest version from here https://developer.android.com/studio/build/multidex
}
 
android {
    defaultConfig {
        multiDexEnabled true
    }
}

直接复制代码在另外电脑上运行,因为没有进行配置,出现了:Failed to install the following Android SDK packages as some licenses have not been accepted.

解决办法:

  1. 一般在错误里面会有一个路径提示,进入路径
  2. 在路径中进入bin目录(在没有更新sdkmanager之前,需要执行 ./sdkmanager --update)
  3. win + R ,输入cmd
  4. 执行 sdkmanager --license 会一直提示y/N ,一直y就可以了
  5. 最好是重启一下Andriod studio

在导入新的项目时,首先肯定是执行flutter pub get,导入依赖,但是一直报错:

提示dart版本过低

我的错误示范:File -> Settings -> Languages & Frameworks -> Dart -> Dart SDK path中直接修改,当时已经修改为2.13版本,但是重新执行 flutter pub get时,还是会报同样的错误,执行 flutter --version 查看dart版本,并未修改成功。 

正确做法:因为flutter是包含dart的,所以需要重新导入flutter,并且重新配置

  1. 下载 flutter     flutter下载地址:Flutter SDK releases | Flutter
  2. 解压,最好是放在C盘以外的其他盘
  3. 电脑属性 -> 高级系统配置 -> 环境变量 -> path中添加解压后flutter的bin目录
  4. 在flutter目录下执行 flutter doctor
  5. 可以执行 flutter --version ,查看当前dart版本
  6. 在Android studio中 File -> Settings -> Languages & Frameworks -> Flutter -> Flutter SDK path 修改成解压文件夹路径
  7. 重启即可(最好是重启电脑)

如果提示gradle版本的问题,那么重新下载指定版本,不需要解压,直接放入配置文件中即可

gradle的下载地址:Gradle Distributions


Looking up a deactivated widget's ancestor is unsafe. 

使用  Navigator.of(context).pop('cancel')  关闭 Dialog 页面时抛出的错误

修改:

        在当前页面查找 一扫描是否有 setState({});如果有的话,需要判断是否数据有值,如果没有值则会报错。加个判断则不会报错。


 删除list数据时遇到的问题

  • listA.add(a);
    • 这种方式的数据格式 a 是个对象    ["a"];
    • 如果需要删除 a 
      listA.removeLast();
  • listB.addAll(b);
    • 这种方式的数据格式 b 是个子集  {"b"}
    • 如果需要删除 b ,选择删除     
      listB.removeWhere((element) {
        element == b;
      });
  • 如果需要删除 listB 中 listC 的数据
    • listC = {"c"};
    • 如果需要删除 listB 中的 c
      listB.removeWhere((element) {
        return listC.contains(element);
      });

启动时报错:RenderBox was not laid out: RenderPhysicalShape#63952 relayoutBoundary=up21

        出现这个问题一般是没有加 height 

解决办法:使用 Container 包裹起来,并且加上 height

Container(height:150,child: showItem(),),

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐