Advertisement

新装电脑Flutter环境部署坑汇总(持续更新)

阅读量:

1.本地安装,安装fvm的坑

我的电脑上运行的是 Windows 系统。如果要安装 FVM 工具,则通常会通过 Chocolatey 安装包来完成。为了安装 Chocolatey 安装包,请先执行以下操作:打开 PowerShell 或者直接启动 CMD 环境后,输入 cmd /k "dotnet install chocolatey" 并按回车键即可完成安装。

复制代码
 Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;

    
 iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) 

choco安装成功后 通过choco install fvm可安装fvm

fvm安装成功后,通过命令行中使用fvm命令对flutter 版本进行控制

在安装完fvm之后需对Flutter进行相应的管理。可通过运行以下命令来指定全局使用的Flutter版本:$ Flutter global xxxx。执行上述命令后,在fvm/versions文件夹下自动生成了一个default目录,默认情况下该目录可被用来配置系统使用的默认Flutter版本参数。从而使得在整个项目中可以方便地调用Flutter相关命令。如果未按照上述方法操作,则可能会出现类似'Flutter不是一个已知 commanded'这样的错误信息。

2.fvm管理flutter版本

进入指定项目目录后,请通过执行以下命令切换到Flutter开发环境:fvm use xxx;然而,在此过程中会遇到一个新问题(源自https://storage.flutter-io.cn/的镜像无法访问)。建议在设置PUB_HOSTED_URL和FLUTTER_STORAGE_BASE_URL这两个全局配置参数时,并补充将对应的IP地址更换为国内其他可用的镜像服务器地址;例如(以下是一些可选的替代服务器列表):

复制代码
 //清华镜像

    
  
    
 FLUTTER_STORAGE_BASE_URL="https://mirrors.tuna.tsinghua.edu.cn/flutter" 
    
 PUB_HOSTED_URL="https://mirrors.tuna.tsinghua.edu.cn/dart-pub"
    
  
    
  
    
 //上交镜像
    
  
    
 PUB_HOSTED_URL=https://dart-pub.mirrors.sjtug.sjtu.edu.cn
    
 FLUTTER_STORAGE_BASE_URL=https://mirrors.sjtug.sjtu.edu.cn
    
  
    
  
    
 //CNNIC镜像
    
 PUB_HOSTED_URL=http://mirrors.cnnic.cn/dart-pub
    
 FLUTTER_STORAGE_BASE_URL=http://mirrors.cnnic.cn/flutter
    
  
    
  
    
 //腾讯镜像
    
 PUB_HOSTED_URL=https://mirrors.cloud.tencent.com/dart-pub
    
 FLUTTER_STORAGE_BASE_URL=https://mirrors.cloud.tencent.com/flutter

这里还有一个待解决的问题。\n在VSCode环境中,默认安装的是Flutter 10.x系列。\n此时需要编辑settings.json文件。\n将Flutter SDK路径配置为以下形式:

复制代码
 {

    
   "dart.flutterSdkPath": "G:\ fvm\ default"
    
 }

**注意:个人使用VS Code作为开发工具来构建Flutter应用,并发现在其命令行交互方式上存在不足之处。在进行Flutter SDK版本更新时仍会遇到类似问题,在排查过程中需重点关注其他潜在因素。回想公司电脑安装经历即是如此:因Flutter SDK路径配置问题导致无法顺利切换SDK版本;而Android Studio通过更新SDK版本自动解决了这一问题。整体而言感觉VS Code的配置较为灵活导致

如果这时想使用vscode自带的F5启动项目,可能会碰到这样的问题:

实际上,在VSCode终端或者命令行界面中都可以直接执行Git操作,并非与Git本身无任何关联。真正的原因却在于系统环境中缺少C:\Windows\System32路径(这里确实令人困惑)。

解决方法则是环境变量的path加上这个路劲,然后重新f5启动成功

3.Gradle使用的坑

在使用Flutter开发Android应用时,在安装与配置Gradle的过程中同样充满挑战。其分发地址通常设置在(gradlereflectors!) gradle-wrapper.properties文件内,请参考以下示例设置。

复制代码
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip

也可以指定本地文件,本地文件格式一般是这样

复制代码
    distributionUrl=file:///D:/gradle7.4/gradle-7.4-all.zip

一般这个指向的是本地.gradle文件下的gradle-xxx-all.zip包

在使用Gradle搭建Android项目的过程中, 网络连接的速度较慢. 如果有访问梯子的选项, 则建议使用它来安装所需的依赖包. 如果无法访问外部网络, 则需配置本地镜像仓库以获取必要的开发工具. 在Gradle版本目录中如:

G:\Gradle\repo\wrapper\dists\gradle-7.5-all\6qsw290k5lz422uaf8jf6m7co\gradle-7.5\init.d

创建init.gradle文件,文件中可以配置gradle的镜像

复制代码
 allprojects {

    
     repositories {
    
     mavenLocal()
    
     maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
    
     maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public/" }
    
     mavenCentral()
    
     }
    
  
    
     buildscript { 
    
     repositories { 
    
         maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
    
         maven { name "Bstek" ; url 'https://nexus.bsdn.org/content/groups/public/' }
    
         maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
    
     }
    
     }
    
 }

注意

注意

复制代码
 maven {

    
     allowInsecureProtocol = true
    
     url 'http://xxx.xxx.xxx/repository/public/' 
    
       }

另外还有个坑 这个在app第一次运行时基本都会碰到,即:

可以参考下这篇文章的思路来处理这个,找清楚原因,然后再去解决

Flutter always runs the Gradle task named 'assembleDebug'…

4.flutter 依赖版本问题 (巨坑)

编译时报错得手动修改依赖的版本号,

对于被其他需求所依存的依赖关系而言,在查找相关的yaml配置文件时可能会遇到缺失的情况(这种情况只能暂时放弃)。而我在本地运行时使用的配置文件就是这个(主要原因是项目从Python 3.7.1升级至3.7.8)。

该工程位于系统根目录下的用户文件夹内;其中包含应用数据文件夹;这些数据通常存储于本地AppData目录下;特别地;该工程还托管在开发服务器pub.dev上;具体的项目版本为社区图表Flutter版1.0.2;其对应的库文件位于项目根目录下的lib子目录中的src代码库中;具体而言;该工程涉及的行为集主要集中在图示说明模块中;用于展示与Legend相关的功能内容。

图片中的这些区域未对空安全进行处理,导致编译无法通过。无奈之下不得不手动修改代码以使编译通过。之后仍然出现异常情况。

这种异常是因为kotlin_version版本较低导致,原来为1.6.x更新到1.7.x即可

5.模拟器的坑

通常来说,默认情况下模拟器会基于x86_64架构进行设置。因此,在构建.gradle文件中进行相关设置较为合理。当遇到类似情况时(尤其是未预先安装Flutter项目时),往往会发现libflutter.so文件缺失。

复制代码
 debug {

    
       
    
         ndk {
    
             abiFilters "x86_64"
    
         }
    
     }
    
     }

真机调试或者其他设备调试可以根据下图架构进行选择

全部评论 (0)

还没有任何评论哟~