跨平台flutter- window与Android Studio环境配置_android toolchain - develop for android devices x -程序员宅基地

技术标签: objective-c  android-studio  ios  工具/环境  设计模式  

背景

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路径

注意

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/MOON_YZM/article/details/124777619

智能推荐

串口serial-程序员宅基地

文章浏览阅读364次,点赞8次,收藏7次。请注意,你需要将SERIAL_PORT变量设置为你机器上实际的串口名称。在Windows上,它可能是COM3、COM4等;在Linux和macOS上,它可能是/dev/ttyUSB0、/dev/ttyACM0等。同样,你可能需要根据你的设备设置来调整BAUD_RATE。这个脚本首先尝试打开指定的串口,并检查是否成功。然后,它发送一个字节字符串到串口,并尝试读取任何返回的响应。最后,它关闭串口连接。pyserial库来建立串口通信的简单示例代码。

「硬见小百科」DS1302结构与工作原理_ds1302z内置晶振-程序员宅基地

文章浏览阅读1.8k次。DS1302结构与工作原理DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟,有计时的作用,和日常接触的电子表,万年历差不多,可以对年月日、时分秒、星期计时。可以用单片机往DS1302里面写入时间进行时间设置,也可以用单片机从DS1302中读取时间,读出来的时间也可以放在液晶上显示。这样就可以实现一块电子表的功能了。DS1302引脚及功能:X1,X2: 振荡源管..._ds1302z内置晶振

车载充电器OBC方案:PFC两相交错并联+DC全桥LLC+28035控制,实用范围限于项目参考学习-程序员宅基地

文章浏览阅读326次,点赞5次,收藏4次。本文将围绕车载充电器的3.3KW车载充电机OBC方案展开讨论,具体方案包括PFC两相交错并联、DC全桥LLC、28035控制和CAN通信等。通过对方案中的PFC两相交错并联、DC全桥LLC、28035控制和CAN通信的讨论,我们可以更好地理解车载充电器的设计原理和工作方式。在本方案中,使用28035控制器来实现车载充电器的控制和管理功能,通过编程控制各个模块的工作状态,实现充电器的高效、稳定运行。在本方案中,使用CAN通信来实现充电器与汽车电池管理系统之间的数据交互,实现充电过程的监控和控制。

PyQt5-计时器控件_pyqt5计时器-程序员宅基地

文章浏览阅读582次。PyQt5-计时器控件_pyqt5计时器

[leetcode] 490. The Maze @ python_leetcode 490 python-程序员宅基地

文章浏览阅读2.3k次。原题https://leetcode.com/problems/the-maze/解法DFS. 定义dfs函数, 返回球从(x, y)出发, 是否能停在目的地. 回溯的条件是如果(x,y) 等于目的地, 返回True.如果(x, y)是已经访问过的, 返回False. 我们将访问过的位置放入visited, 然后在上下左右四个方向检查, 让球一直滚, 检查停住的地方是否为目的地, 如果有一个..._leetcode 490 python

删除anaconda后出现的python环境变量问题_将软件删除后环境变量-程序员宅基地

文章浏览阅读2k次,点赞2次,收藏3次。问题没删除anaconda之前已经配置好anaconda环境变量,在cmd中默认下载包的位置是anaconda中,由于某些原因将anaconda卸载后(又重新配置了python环境变量),发现在cmd下载包成功后,在idle中找不到。解决方法:1.在cmd中输入下面这个命令:where python发现有两个python。一个是我自己安装的,另一个的位置是在C:\Users\m\AppData\Local\Microsoft\WindowsApps下。2.所以在cmd中下载的包就在c盘_将软件删除后环境变量

随便推点

VCG笔记-mesh元素的创建/删除_c++怎么用一个mesh的部分顶点创建一个新mesh-程序员宅基地

文章浏览阅读2.8k次。1 创建mesh元素  我们在创建简单的网格模型或者为已存在的网格模型添加元素的时候,我们应该使用AddVertices和AddFaces这两个函数,新的元素被添加到网格模型的尾部,函数会返回指向第一个新分配(或者说是添加)的第一个元素的指针。向vector添加元素会引起存储空间的重新分配(reallocation),因此可能会出现无效的指针指向网格元素。而上述的AddVertices和AddFac_c++怎么用一个mesh的部分顶点创建一个新mesh

无监督学习 聚类算法代码+原理+对比分析-程序员宅基地

文章浏览阅读1.1w次,点赞3次,收藏9次。无监督学习 聚类算法1:经典的K means纵使簇类需要专家系统与先验知识定义,K means 也依旧在当前的机器学习与深度学习使用,例如各种数据分析以及深度学习全连接以后的输出层网络连接,它与他的衍生算法,例如K means ++ ,在聚类算法中一直是老大地位,因为他的速度是极快的,相比其他算法在计算簇间相似度与簇内相似度中的速度较慢;所以就出现了很多算法,是来优化K means 家族的,例如在簇的寻找上,使用DBACAN等层次聚类算法用来给K means ++ 寻找最合适的簇个数,在此基础上,DBA

TwinCAT设置项目开机自动启动_twincat2设置开机自动运行程序-程序员宅基地

文章浏览阅读7.8k次,点赞2次,收藏10次。https://blog.csdn.net/little_snail_bing/article/details/86628856开机自动运行可以这样设置:1、右键TEST,勾选上 Autostart Boot Project2、单击SYSTEM,勾选上Run Mode,再勾选上Auto Logan,在下面的框里填入电脑的用户名和登陆密码,点击Apply,激活配置;再次开机就会自动启动..._twincat2设置开机自动运行程序

java使用file.createNewFile()创建文件时,报错目录不存在,如何解决_file.createnewfile() 报错-程序员宅基地

文章浏览阅读1.2w次,点赞15次,收藏25次。普通创建文件代码:String strPath = "E:\\test\\test1\\test.txt";File file = new File(strPath);if(!file.exists())){ file.createNewFile();}上述这段代码,当E:\test\test1目录不存在时,createNewFile()执行会报错:java.io.IOException:Parent directory of file does not existString st_file.createnewfile() 报错

2-3计算分段函数_计算分段函数(判断x是否不为0)-程序员宅基地

文章浏览阅读4.1k次,点赞5次,收藏13次。例2-4:为鼓励居民节约用水,自来水公司采取用水量按月分段计费的办法,居民应交水费y元与月用水量x吨的函数关系式如下设x≥0.输入用户的月用水量x吨,计算并输出改用户应支付的水费y(元)(保留两位小数)。y=f(x)=4x/3; x≤15y=f(x)=2.5x-10.5 x>15做这个题的时候应该注意留意题目最后的保留两位小数,并结合实际,应该不适用整型常量。#inc..._计算分段函数(判断x是否不为0)

笔记:json对象和字符串的相互转换_matlab jsonencode 转字符串-程序员宅基地

文章浏览阅读139次。原文链接:https://www.cnblogs.com/yjd_hycf_space/p/7928384.html//使用json中的parser方法转换;var str='{"name":"fendouer", "age":23}'; //这是一个json字符串''var ob=JSON.parse(str) ; //返回一个新对象console.log..._matlab jsonencode 转字符串

推荐文章

热门文章

相关标签