跨平台flutter- window与Android Studio环境配置

背景

Flutter是谷歌的混合移动UI框架,一套代码可以快速在iOS和Android上构建高质量的原生用户界面,Flutter可以与已有的代码一起混编,Flutter是完全免费并且开源的,正被越来越多的开发者和组织使用。

  • 混合开发:Flutter拥有丰富的工具和库,可以帮助您轻松地同时在iOS和Android系统中实现您的想法和创意。 如果您没有任何移动端开发体验,Flutter是一种轻松快捷的方式来构建漂亮的移动应用程序。 如果您是一位经验丰富的iOS或Android开发人员,则可以使用Flutter作为视图(View)层, 并可以使用已经用Java / ObjC / Swift完成的部分
  • 快速开发:Flutter的热重载可帮助您快速地进行测试、构建UI、添加功能并更快地修复错误。在iOS和Android模拟器或真机上可以在亚秒内重载,并且不会丢失状态
  • 富有表现力,漂亮的用户界面:Flutter内置美丽的Material Design和Cupertino(iOS风格)widget、丰富的motion API、平滑而自然的滑动效果和平台感知,为您的用户带来全新体验
  • 响应式框架:和一系列基础widget,轻松构建您的用户界面。使用功能强大且灵活的API(针对2D、动画、手势、效果等)解决艰难的UI挑战
  • 访问本地功能和SDK:通过平台相关的API、第三方SDK和原生代码让您的应用变得强大易用。 Flutter允许您复用现有的Java、Swift或ObjC代码,访问iOS和Android上的原生系统功能和系统SDK
  • 用于承载和编译Dart语言和Widget库的框架,将Dart编译为原生代码的SDK
  • Dart语言特点面向对象,类定义,单继承,语法类似C语言,可转译为JavaScript

更多了解可到Flutter中文网

准备

windows系统,flutter-io镜像

安装

使用镜像-用户环境变量配置

由于在国内访问Flutter有时可能会受到限制,Flutter官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中:

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

注意: 此镜像为临时镜像,并不能保证一直可用,请随时关注Flutter中文网 以获得有关镜像服务器的最新动态。
window用户环境变量:我的电脑右键-属性-高级系统设置-高级模块下面的环境变量-新建用户变量并配置确定
在这里插入图片描述
在这里插入图片描述

系统要求

要安装并运行Flutter,您的开发环境必须满足以下最低要求:

操作系统: Windows 7 或更高版本 (64-bit)
磁盘空间: 400 MB (不包括Android Studio的磁盘空间).
工具: Flutter 依赖下面这些命令行工具.
Git for Windows (Git命令行工具)

如果已安装Git for Windows,请确保命令提示符或PowerShell中运行 git 命令,不然在后面运行flutter doctor时将出现Unable to find git in your PATH错误, 此时需要手动添加C:\Program Files\Git\bin至Path系统环境变量中。

获取Flutter SDK

注意,Flutter的渠道版本会不停变动,请以Flutter官网为准。另外,在中国大陆地区,要想正常获取安装包列表或下载安装包,可能需要翻墙,读者也可以去Flutter github项目下去下载安装包 。
有稳定版,测试版,和开发版,我们选择稳定版3.0.1下载:
在这里插入图片描述

  • 将安装包zip解压到你想安装Flutter SDK的路径(如:C:\src\flutter;注意,不要将flutter安装到需要一些高权限的路径如C:\Program Files\)。我们解压到D盘:
    在这里插入图片描述

  • 在Flutter安装目录的flutter文件下找到flutter_console.bat,双击运行并启动flutter命令行,接下来,你就可以在Flutter命令行运行flutter命令了。
    在这里插入图片描述
    在这里插入图片描述
    这代表flutter控制台启动成功

注意: 由于一些flutter命令需要联网获取数据,如果您是在国内访问,由于众所周知的原因,直接访问很可能不会成功。 上面的PUB_HOSTED_URL和FLUTTER_STORAGE_BASE_URL是google为国内开发者搭建的临时镜像。详情请参考 Using Flutter in China

上述命令为当前终端窗口临时设置PATH变量。要将Flutter永久添加到路径中,请参阅更新路径。

更新环境变量

要在终端运行 flutter 命令, 你需要添加以下环境变量到系统PATH:

转到 “控制面板>用户帐户>用户帐户>更改我的环境变量”
在“用户变量”下检查是否有名为“Path”的条目:
如果该条目存在, 新建并追加 flutter\bin的全路径,使用 ; 作为分隔符.
如果条目不存在, 创建一个新用户变量 Path ,然后将flutter\bin的全路径作为它的值.
在这里插入图片描述

在“用户变量”下检查是否有名为”PUB_HOSTED_URL”和”FLUTTER_STORAGE_BASE_URL”的条目,如果没有,也添加它们。
重启Windows以应用此更改

运行flutter doctor

打开一个新的命令提示符或PowerShell窗口并运行以下命令以查看是否需要安装任何依赖项来完成安装:

flutter doctor

在命令提示符或PowerShell窗口中运行此命令。目前,Flutter不支持像Git Bash这样的第三方shell。
该命令检查您的环境并在终端窗口中显示报告。Dart SDK已经在捆绑在Flutter里了,没有必要单独安装Dart。 仔细检查命令行输出以获取可能需要安装的其他软件或进一步需要执行的任务(以粗体显示)

例如:

[-] Android toolchain - develop for Android devices
• Android SDK at D:\Android\sdk
✗ Android SDK is missing command line tools; download from https://goo.gl/XxQghQ
• Try re-installing or updating your Android SDK,
visit https://flutter.io/setup/#android-setup for detailed instructions.
第一次运行一个flutter命令(如flutter doctor)时,它会下载它自己的依赖项并自行编译,所以速度会慢一些,还需耐心等待。以后再运行就会快得多。
在这里插入图片描述
表示flutter安装完毕,后面的错误是需要安装Android编译环境,以及需要更新Visual Studio

以下各部分介绍如何执行这些任务并完成设置过程。你会看到在flutter doctor输出中, 如果你选择使用IDE,我们提供了,IntelliJ IDEA,Android Studio和VS Code的插件, 请参阅编辑器设置 以了解安装Flutter和Dart插件的步骤。

一旦你安装了任何缺失的依赖,再次运行flutter doctor命令来验证你是否已经正确地设置了。

该flutter工具使用Google Analytics匿名报告功能使用情况统计信息和基本崩溃报告。 这些数据用于帮助改进Flutter工具。Analytics不是一运行或在运行涉及flutter config的任何命令时就发送, 因此您可以在发送任何数据之前退出分析。要禁用报告,请执行flutter config --no-analytics并显示当前设置,然后执行flutter config。 请参阅Google的隐私政策。

编辑器设置
使用 flutter 命令行工具,您可以使用任何编辑器来开发Flutter应用程序。输入flutter help在提示符下查看可用的工具。

我们建议使用我们的插件来获得丰富的IDE体验,支持编辑,运行和调试Flutter应用程序。请参阅编辑器设置了解详细步骤

安装Android环境

安装Android Studio

要为Android开发Flutter应用,您可以使用Mac,Windows或Linux(64位)机器.

Flutter需要安装和配置Android Studio:

  • 由于AndroidStudio是国外的没有vpn直接访问会有一些问题,以下为中文网下载地址,下载并安装 Android Studio根据个人设备配置下载.
    在这里插入图片描述
  • 启动Android Studio,然后执行“Android Studio安装向导”。这将安装最新的Android SDK,Android SDK平台工具和Android SDK构建工具,这是Flutter为Android开发时所必需的,
    除了安装路径自定义自己想装的位置之外其他都点击下一步,直到Install Type选择自定义安装:
    在这里插入图片描述
    然后是选择界面风格根据自己喜欢选择:

在这里插入图片描述
安装Sdk的时候路径可选择为与Android Studio同级新增一个文件Sdk,然后next
在这里插入图片描述
然后会让我们选择Android内存,默认选择即可,然后next,
在这里插入图片描述
进入环境安装下载,next:
在这里插入图片描述
然后选择接受安装协议,并finish,进入下载安装
在这里插入图片描述
出现这个就代表我们的AndroidStudio下载安装完毕。

Android Studio系统设置

把Android的开发环境配置到系统里面,打开高级系统设置->高级->环境变量

  • 首先我们要配置系统变量,变量名ANDROID_HOME必须全部大写,变量值为Sdk的安装路径:
    在这里插入图片描述
  • 系统Path配置,%ANDROID_HOME%\platform-tools,这样Android才能全局使用
    在这里插入图片描述
    控制台执行adb devices,是Android提供检测是否有Android设备连接的指令
adb devices

出现List of devices attached即为成功。
在这里插入图片描述
然后再执行flutter doctor:

Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
Doctor summary (to see all details, run flutter doctor -v):
[] Flutter (Channel stable, 3.0.1, on Microsoft Windows [版本 10.0.19044.1706], locale zh-CN)
[!] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    X cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    X Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.
[] Chrome - develop for the web
[X] Visual Studio - develop for Windows
    X Visual Studio not installed; this is necessary for Windows development.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components
[] Android Studio (version 2021.1)
[] Connected device (3 available)
[] HTTP Host Availability

! Doctor found issues in 2 categories.

在这里插入图片描述
这几个对勾表示Android Studio环境配置成功,但还有一些错误,
关于配置的错误

cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"`
See https://developer.android.com/studio/command-line for more details.

打开Android Studio设置,这几个tool设置一下,
在这里插入图片描述
然后再执行flutter doctor,看到配置的错误已经解决了
在这里插入图片描述

但下面是flutter未接受许可错误,许可执行:flutter doctor --android-licenses

flutter doctor --android-licenses

进入是否允许接受许可,输入 y
在这里插入图片描述
连续y,直到执行出现All SDK package licenses accepted,表示许可接受完成。
然后再执行flutter doctor:
在这里插入图片描述
可以看出来,需要下载Visual Studio:里面有提示下载的地址:https://visualstudio.microsoft.com/downloads/
然后安装 “Desktop development with C++” ,默认安装
在这里插入图片描述

然后再执行flutter doctor:

 Visual Studio - develop for Windows (the doctor check crashed)
    X Due to an error, the doctor check did not complete. If the error message below is not helpful, please let us know
      about this issue at https://github.com/flutter/flutter/issues.
    X Exception: Bad UTF-8 encoding (U+FFFD; REPLACEMENT CHARACTER) found while decoding string: [
        {
          "instanceId": "3ffd25c1",
          "installDate": "2022-05-30T14:52:30Z",
          "installationName": "VisualStudio/17.2.2+32519.379",
          "installationPath": "D:\\Application\\Microsoft Visual Studio\\2022\\Community",
          "installationVersion": "17.2.32519.379",
          "productId": "Microsoft.VisualStudio.Product.Community",
          "productPath": "D:\\Application\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\devenv.exe",
          "state": 4294967295,
          "isComplete": true,
          "isLaunchable": true,
          "isPrerelease": false,
          "isRebootRequired": false,
          "displayName": "Visual Studio Community 2022",
          "description": "����ǿ��� IDE����ѧ��������Դ��������ߺ͸������ʹ��",
          "channelId": "VisualStudio.17.Release",
          "channelUri": "https://aka.ms/vs/17/release/channel",
          "enginePath": "C:\\Program Files (x86)\\Microsoft Visual
          Studio\\Installer\\resources\\app\\ServiceHub\\Services\\Microsoft.VisualStudio.Setup.Service",
          "installedChannelUri": "https://aka.ms/vs/17/release/channel",
          "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.2#17.2.2",
          "thirdPartyNotices": "https://go.microsoft.com/fwlink/?LinkId=661288",
          "updateDate": "2022-05-30T14:52:30.664144Z",
          "catalog": {
            "buildBranch": "d17.2",
            "buildVersion": "17.2.32519.379",
            "id": "VisualStudio/17.2.2+32519.379",
            "localBuild": "build-lab",
            "manifestName": "VisualStudio",
            "manifestType": "installer",
            "productDisplayVersion": "17.2.2",
            "productLine": "Dev17",
            "productLineVersion": "2022",
            "productMilestone": "RTW",
            "productMilestoneIsPreRelease": "False",
            "productName": "Visual Studio",
            "productPatchVersion": "2",
            "productPreReleaseMilestoneSuffix": "1.0",
            "productSemanticVersion": "17.2.2+32519.379",
            "requiredEngineVersion": "3.2.2148.26540"
          },
          "properties": {
            "campaignId": "2030:b339723e-f580-4215-a586-af436edb4770",
            "channelManifestId": "VisualStudio.17.Release/17.2.2+32519.379",
            "nickname": "",
            "setupEngineFilePath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\Installer\\setup.exe"
          }
        }
      ]
      . The Flutter team would greatly appreciate if you could file a bug explaining exactly what you were doing when
      this happened:
      https://github.com/flutter/flutter/issues/new/choose
      The source bytes were:
      [91, 13, 10, 32, 32, 123, 13, 10, 32, 32, 32, 32, 34, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 34, 58, 32,...]


[] Android Studio (version 2021.1)
[] Connected device (3 available)
[] HTTP Host Availability

! Doctor found issues in 1 category.

意思就是VisualStudio安装程序提供的vswhere已经过时,在utf8开关上有个BUG,升级vswhere即可解决。

首先下载最新的vswhere 3.0.2可能需要VPN

找到VisualStudio安装程序的安装目录,我是C:\Program Files (x86)\Microsoft Visual Studio\Installer中vswhere.exe文件,并替换
在这里插入图片描述
然后再执行flutter doctor:
在这里插入图片描述
至此,flutter的windows环境和Android Studio环境配置完成

Android设备设置

设置Android设备

要准备在Android设备上运行并测试您的Flutter应用,您需要安装Android 4.1(API level 16)或更高版本的Android设备.

在您的设备上启用 开发人员选项 和 USB调试 。详细说明可在Android文档中找到。
使用USB将手机插入电脑。如果您的设备出现提示,请授权您的计算机访问您的设备。
在终端中,运行 flutter devices 命令以验证Flutter识别您连接的Android设备。
运行启动您的应用程序 flutter run。
默认情况下,Flutter使用的Android SDK版本是基于你的 adb 工具版本。 如果您想让Flutter使用不同版本的Android SDK,则必须将该 ANDROID_HOME 环境变量设置为SDK安装目录。

设置Android模拟器-Genymotion

  • Genymotion 下载地址:https://www.genymotion.com/download/
  • Genymotion 对于个人免费,对于组织收费我们选择免费,我们选择带虚拟机
    在这里插入图片描述
    安装的时候有个Oracle VM VirtualBox安装,也是默认必须要的,一起安装,最好默认路径安装
    然后注册个账号,选择个人使用,并登录
    在这里插入图片描述
    然后里面有各种型号的Android手机的模拟器,点击自己想要的手机型号的模拟器并下载安装:
    在这里插入图片描述
    下载中:
    在这里插入图片描述
    启动模拟器:
    在这里插入图片描述
    然后我们的Android模拟器就完美启动了:
    在这里插入图片描述

经验

  • 有Android Studio中模拟器的需要系统环境变量配置名字:ANDROID_SDK_HOME
    值为avd路径

注意

环境配置过程中,更多的是要注意用户环境配置,和系统环境配置,根据流程见招拆招,绽放不一样的焰火。

将 **Android Studio 项目** 转换为 **Windows 桌面应用程序** 是一个相对复杂的任务,因为 Android 应用是为移动设备设计的,使用了 Android SDK 和 Dalvik/ART 虚拟机,而 Windows 桌面应用通常使用 Java SE 或 .NET 等平台。 不过,有几种方法可以实现或模拟 Android 项目在 Windows 上运行: --- ## ✅ 方法一:使用 **JavaFX + 模拟器 + Android 应用打包为 APK + 桌面运行器** ### ✅ 适用场景: 你希望在 Windows 桌面上运行 Android 应用(APK),并提供一个桌面窗口界面。 ### ✅ 实现步骤: ### 1. 在 Android Studio 中生成 APK 文件 ```bash Build > Build Bundle(s) / APK(s) > Build APK(s) ``` 生成的 APK 文件路径通常在 `app-release.apk` 或 `app-debug.apk` --- ### 2. 使用桌面运行器运行 APK(如:**AnLinux**、**ExaGear**、**Limbo PC Emulator**) 这些工具可以模拟 Android 环境,运行 APK。 #### 示例:使用 **ExaGear**(收费) - 下载并安装 ExaGear(需要购买授权) - 将 APK 拖入 ExaGear 运行器 - 启动即可看到 Android 应用在 Windows 桌面上运行 --- ### 3. 使用 JavaFX 包装 APK(模拟桌面界面) 你可以使用 JavaFX 创建一个窗口应用,嵌入一个 WebView 或调用 ExaGear 运行器。 #### 示例代码(JavaFX 窗口): ```java import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.web.WebView; import javafx.stage.Stage; public class AndroidAppLauncher extends Application { @Override public void start(Stage primaryStage) { WebView webView = new WebView(); webView.getEngine().load("file:///path/to/your/app.apk"); // 实际不能直接加载 APK Scene scene = new Scene(webView, 800, 600); primaryStage.setScene(scene); primaryStage.setTitle("Android App in JavaFX"); primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` > 注意:JavaFX 不能直接运行 APK,但你可以用它作为前端界面,调用外部运行器。 --- ## ✅ 方法二:将 Android 项目重构为 **Java SE + JavaFX/Swing** ### ✅ 适用场景: 你希望将 Android 项目的逻辑迁移到桌面应用,而不是直接运行 APK。 ### ✅ 实现步骤: ### 1. 创建 JavaFX 或 Swing 桌面项目 使用 IntelliJ IDEA 或 Eclipse 创建 JavaFX 项目。 ### 2. 将 Android 项目中 Android SDK 无关的代码提取出来 - 提取 `utils`、`models`、`business logic` 等代码 - 替换 Android 特有的类(如 `Context`、`Activity`、`Intent`) ### 3. 创建桌面 UI 替代 Android UI 用 JavaFX 或 Swing 重写 UI 部分。 #### 示例:JavaFX Button 替代 Android Button ```java Button fxButton = new Button("Click Me"); fxButton.setOnAction(e -> { System.out.println("Button clicked!"); }); ``` --- ## ✅ 方法三:使用 **Kotlin Multiplatform Mobile (KMM)** 或 **Jetpack Compose Desktop** ### ✅ 适用场景: 你希望用 Kotlin 构建跨平台应用(Android + Windows) ### ✅ 实现步骤: ### 1. 创建 Kotlin Multiplatform 项目 使用 IntelliJ IDEA 创建 KMM 项目,包含: - `common`:共享逻辑 - `androidApp`:Android 版本 - `desktopApp`:Windows 桌面版本 ### 2. 编写共享逻辑 ```kotlin // commonMain expect class Platform() { val platform: String } ``` ```kotlin // androidMain actual class Platform actual constructor() { actual val platform: String = "Android" } ``` ```kotlin // desktopMain actual class Platform actual constructor() { actual val platform: String = "Desktop" } ``` ### 3. 构建桌面应用 使用 `build.gradle.kts` 构建 Windows 可执行文件: ```kotlin plugins { kotlin("multiplatform") version "1.8.0" application } application { mainClass.set("MainKt") } kotlin { jvm { compilations.all { kotlinOptions.jvmTarget = "11" } withJava() } sourceSets { val jvmMain by getting { dependencies { implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4") } } } } ``` --- ## ✅ 方法四:使用 **React Native / Flutter + 桌面支持** ### ✅ 适用场景: 你希望将 Android 项目转换为跨平台桌面应用(使用 Flutter 或 React Native) ### ✅ 实现步骤: ### 1. 使用 Flutter 创建项目 ```bash flutter create my_desktop_app cd my_desktop_app flutter create --platforms windows . ``` ### 2. 实现 Android 项目的逻辑 将 Android 的业务逻辑用 Dart 实现,UI 用 Flutter 重构。 ### 3. 构建 Windows 应用 ```bash flutter build windows ``` --- ## ✅ 总结 | 方法 | 是否运行原 APK | 是否需重构 | 平台支持 | 适合人群 | |------|----------------|-------------|-----------|-----------| | 使用 ExaGear 等运行 APK | ✅ | ❌ | Windows | 快速运行 | | JavaFX + Android 逻辑迁移 | ❌ | ✅ | Windows | Java 开发者 | | Kotlin Multiplatform | ❌ | ✅ | Android + Windows | Kotlin 开发者 | | Flutter / React Native | ❌ | ✅ | 多平台 | 跨平台开发者 | --- ## ✅ 相关问题 ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

☆MOON

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值