Flutter
工程环境安装与配置
windows 下用 VSCode 或者 AS (Android Studio) 进行开发
Flutter部分
- 下载 flutter SDK,一般里面已经包括了Dart SDK
- 配置flutter环境变量、Dart环境变量和相关镜像站点环境变量(毕竟国内):
PUB_HOSTED_URL
和FLUTTER_STORAGE_BASE_URL
- 使用
flutter doctor
命令检查
# 修改flutter配置;修改之后,环境变量变了,不会跟着改变
flutter config --list
flutter config --jdk-dir=/path/to/your/jdk # 手动修改jdk位置
# flutter 安装环境检测
flutter doctor
flutter doctor --verbose
AS 部分
- JAVA 环境:下载JDK,配置环境变量,
java -version
检验 - 下载
AS (Android Studio)
- AS 中下载
Flutter
和Dart插件
, 配置Project Structure
下面的JDK地址, 根据flutter doctor的结果安装必要的工具(【SDK Manager】下) - 安装
Android SDK
, 配置各种环境变量:platform-tools等,便于开发 - 下载Java对应版本的gradle(安卓构建工具)
- 调整 android -> gradle -> gradle-wrapper.properties (也有可能在其他位置) 中 gradle变量,默认是下载很慢,所以下下来之后好一些
#distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip
distributionUrl=file:///F\:/gradle/gradle-8.8-all.zip
app -> build.gradle中需要调整相应的SDK版本
WINDOWS 下调整Android Studio的缓存位置, 缓存等文件夹不放在C盘:修改
F:\ProgramData\android-studio\bin\idea.properties
文件中的config和system的path#--------------------------------------------------------------------- # Uncomment this option if you want to customize a path to the settings directory. #--------------------------------------------------------------------- idea.config.path=F:/ProgramData/as-cache/.AndroidStudio/config #--------------------------------------------------------------------- # Uncomment this option if you want to customize a path to the caches directory. #--------------------------------------------------------------------- idea.system.path=F:/ProgramData/as-cache/.AndroidStudio/system
windows下调整.gradle保存位置,因为占用很多,修改环境变量:
GRADLE_USER_HOME = F:\ProgramData\as-cache\.gradle
或者 直接在 AS 中Settings -> Gradle下进行调整
Flutter依赖(类似web前端工程依赖)
- 依赖包查找
- 修改
pubspec.yaml
中dependences
和dev_dependences
, 直接在AS中可以update - 注意:下载依赖时,一定要看它的文档和推荐版本
- 会生成一个 pubspec.lock 文件,可能有时候也要删除掉重新下载依赖
- 下载的依赖一般在:
C:\Users\用户名\AppData\Local\Pub\Cache\hosted\pub.flutter-io.cn
# 下载命令
flutter pub get
常用插件
http请求:dio loading: flutter_easyloading dialog:adaptive_dialog 状态管理:provider 数据持久化:share_preferences 相机: camera
基本概念一: Widget
Flutter的核心设计思想便是 "一切皆 Widget
"
Widget Element RenderObject
StatelessWidget StatefulWidget
当你所要构建的用户界面不随任何状态信息的变化而变化时,需要选择使用StatelessWidget,反之则选用 StatefulWidget
基本概念二、 State
Flutter的视图开发是声明式的,其核心设计思想就是将视图和数据分离,这与 React 的设计思路完全一致
基本概念三、 生命周期
其他UI组件库
- Get Widget
- Bruno: Bruno 贝壳公司一整套设计体系
- macos_ui: macOS
- fluent_ui: windows
- tekflat_design
相关问题
一、安卓调试时,gradle下载慢的问题,安装依赖后,依赖中一般也会慢
解决方法一: 用梯子,google() mavenCentral() 需要连接外网 解决方法二: 麻烦一些,调整[android]
中 build.gradle
、 Settings.gradle
, 下载的依赖中也进行调整External -> Flutter Plugins下面
// 腾讯maven
maven {
url 'https://mirrors.cloud.tencent.com/nexus/repository/maven-public'
}
// 阿里maven
maven {
url 'https://maven.aliyun.com/repository/google'
}
maven {
url 'https://maven.aliyun.com/repository/jcenter'
}
maven {
url 'https://maven.aliyun.com/repository/gradle-plugin'
}
maven {
url 'https://maven.aliyun.com/nexus/content/groups/public'
}
// 默认官方maven
// google()
// mavenCentral()
二、安装完三方fluttertoast依赖后运行报错
Execution failed for task ':fluttertoast:compileDebugJavaWithJavac'.
> Could not resolve all files for configuration ':fluttertoast:androidJdkImage'.
> Failed to transform core-for-system-modules.jar to match attributes {artifactType=_internal_android_jdk_image, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
> Execution failed for JdkImageTransform: F:\AdrSDK\platforms\android-33\core-for-system-modules.jar.
> Error while executing process F:\ProgramData\jdk-22.0.2\bin\jlink.exe with arguments {--module-path C:\Users\dell\.gradle\caches\8.8\transforms\2b0b454e888697ca218318e4ac8fecc6-ee76b1ff-daac-4017-802f-8a4e847a1ead\transformed\output\temp\jmod --add-modules java.base --output C:\Users\dell\.gradle\caches\8.8\transforms\2b0b454e888697ca218318e4ac8fecc6-ee76b1ff-daac-4017-802f-8a4e847a1ead\transformed\output\jdkImage --disable-plugin system-modules}
解决办法:根据报错位置来看,JDK中的jlink.exe报错,尝试调整JDK版本,最后确实是JDK版本的问题, 将22.0.1降到了19.0.1
三、打包的时候报kotlin版本不对
解决办法:
打开android目录下build.gradle
查找buildscript配置块中的ext.kotlin_version属性,这个属性定义了项目使用的Kotlin版本
buildscript { ext.kotlin_version = '1.6.0' }
如果你需要更新Kotlin版本,只需将ext.kotlin_version的值改为你想要的版本,保存build.gradle文件
flutter clean, flutter build