(一)环境配置及问题

环境变量配置

  • FVM_HOME:

    这个环境变量通常用于Flutter版本管理器(Flutter Version Management,简称FVM)。FVM是一个帮助开发者管理和切换不同Flutter版本的工具。设置FVM_HOME可以指定FVM存储和管理Flutter SDK版本的位置。

    FVM global 3.10.5 
    //通过这个指令可以使用flutter3.10.5版本,这时会在FVM_HOME目录下生成default目录
    //可以在path中添加下面环境变量,配置全局的flutter和dart
    %FVM_HOME%\default\bin
    %FVM_HOME%\default\bin\cache\dart-sdk\bin
    
  • GRADLE_HOME:
    指向Gradle的安装目录。Gradle是一个自动化构建工具,广泛用于Java、Android和其他多种语言的项目。通过设置GRADLE_HOME,系统可以知道从哪里运行Gradle命令。

    //设置path变量
    %GRADLE_HOME%\bin
    
  • GRADLE_USER_HOME:
    指定存储Gradle配置、依赖等信息的位置。默认情况下,这通常是用户目录下的.gradle文件夹。但可以通过设置这个环境变量来改变这个位置。

  • JAVA_HOME:
    指向JDK(Java开发工具包)的安装位置。许多Java应用程序和开发工具(如Android Studio和Gradle)都需要通过JAVA_HOME环境变量来定位JDK。

    //设置path变量
    %JAVA_HOME%\bin
    
  • ANDROID_HOME ANDROID_HOME 是一个较早使用的环境变量,主要用来指定 Android SDK 的安装位置。开发工具和脚本(如 Android Studio, Gradle, adb 等)使用这个变量来找到 SDK 的各个组件。

  • ANDROID_SDK_HOME:
    指定Android SDK的安装位置。Android SDK包含了开发Android应用所需的工具和API。设置这个环境变量可以帮助开发工具和IDEs(如Android Studio)定位SDK。

  • M2_HOME:
    指向Maven的安装目录。Maven是Java项目的另一种流行的构建工具。通过设置M2_HOME,系统可以知道从哪里运行Maven命令。

    //设置path变量
    %M2_HOME%\bin
    
  • PUB_CACHE:
    用于Dart和Flutter开发。PUB_CACHE指定了Pub包管理器存储其包缓存的位置。如果没有设置,它默认存储在用户目录下。

  • PUB_HOSTED_URL:
    指向Dart包管理器Pub使用的服务器URL。这对于在特定的源(比如公司内部的Pub服务器)而非公共Pub仓库中获取包特别有用。

    //设置值
    https://pub.flutter-io.cn
    
  • FLUTTER_STORAGE_BASE_URL:
    用于Flutter开发。这个环境变量允许你指定Flutter工具和依赖的下载源的基本URL。这在访问官方源受限或速度缓慢时特别有用,可以设置为更接近或更快的镜像源。

    //设置值
    https://storage.flutter-io.cn
    

配置flutter 使用的androidSDK目录

flutter config --android-sdk ${ANDROID_HOME的目录}

gradle 配置

在GRADLE_USER_HOME环境变量的目录下添加init.gradle文件,内容如下,使用镜像源提升maven的下载速度

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/' }
        }
    }
}

如果使用项目gradle构建

打开 android/gradle/wrapper/gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
//修改为下面镜像,只保留gradle-7.5-all.zip
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-7.5-all.zip

当然也可以在android/build.gradle添加项目的repositories镜像提升maven的下载速度,如果GRADLE_USER_HOME配置了可以不配置该选项

buildscript {
    ext.kotlin_version = '1.7.10'
    repositories {
        maven { setUrl( "https://jitpack.io" )}
        maven { setUrl( "https://maven.aliyun.com/repository/public" )}
        maven { setUrl( "https://maven.aliyun.com/repository/jcenter" )}
        maven { setUrl( "https://maven.aliyun.com/repository/google" )}
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.3.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

在android目录下运行,如果没问题,便可以在真机上进行编译运行

./gradlew assembleDebug --info
//命令是为了构建一个Android项目的Debug版本,并且输出详细的信息(info级别的日志)。
//这个命令在Android开发中相当常用,特别是当你需要更详细的构建日志来诊断问题时

使用全局gradle构建

进入到带build.gradle的根目录(一般在android目录下)

gradle assembleDebug --info
//命令是为了构建一个Android项目的Debug版本,并且输出详细的信息(info级别的日志)。
//这个命令在Android开发中相当常用,特别是当你需要更详细的构建日志来诊断问题时

问题

  • 修改了系统的版本之后,特别是fvm切换了flutter版本,一定要重新启动Android Studio,否则可能使用的还是旧的flutter,或者在命令行使用
flutter run -t lib/main.dart  
//命令行如果可以正常,那就是Android Studio没有更新版本