flutter 安装、依赖与问题
flutter安装第一步安装参考了大佬的安装教程,包含安装flutter插件和Dart插件:https://blog.csdn.net/qq_43652113/article/details/109147765第二部添加设备添加设备,可以在Android studio 中右上角点击AVD Manage 选择一个设备进行下载,等待第三步启动设备添加完毕,直接点击启动,即可以看到官方提供的模板————
Flutter安装
- 安装
参考了大佬的安装教程,包含安装flutter插件和Dart插件:https://blog.csdn.net/qq_43652113/article/details/109147765 - 添加设备
添加设备,可以在Android studio 中右上角点击AVD Manage 选择一个设备进行下载,等待 - 启动
设备添加完毕,直接点击启动,即可以看到官方提供的模板 - 使用:
- 在项目路径 -> cmd -> flutter pub get (类型于npm install)
- 启动项目(flutter run / Android studio 小绿标)中可能会报错:大概内容是connection timed out:connect
解决办法:下载gradle-6.3-all.zip压缩包
修改配置文件:android\gradle\wrapper - E:\lolordProject\04-Activity\00-SourceCode\eventChckApp\eventapp\android\gradle\wrapper\gradle-wrapper.properties -> file:/F://flutter/gradle-6.3-all.zip
Flutter依赖
- 在根目录下找到pubspec.yaml文件
- 找到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 //我要添加的依赖
-
在terminal执行:flutter packages get,等待即可
Flutter 打包
- flutter build apk --debug
所遇到问题
在添加图片的时候,一直提示找不到图片;
- 在根目录下创建images文件夹
- 在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.
解决办法:
- 一般在错误里面会有一个路径提示,进入路径
- 在路径中进入bin目录(在没有更新sdkmanager之前,需要执行 ./sdkmanager --update)
- win + R ,输入cmd
- 执行 sdkmanager --license 会一直提示y/N ,一直y就可以了
- 最好是重启一下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,并且重新配置
- 下载 flutter flutter下载地址:Flutter SDK releases | Flutter
- 解压,最好是放在C盘以外的其他盘
- 电脑属性 -> 高级系统配置 -> 环境变量 -> path中添加解压后flutter的bin目录
- 在flutter目录下执行 flutter doctor
- 可以执行 flutter --version ,查看当前dart版本
- 在Android studio中 File -> Settings -> Languages & Frameworks -> Flutter -> Flutter SDK path 修改成解压文件夹路径
- 重启即可(最好是重启电脑)
如果提示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(),),
更多推荐
所有评论(0)