< >
    首页

    如何解决flutter编译安卓程序速度慢的问题,附带解决编译为linux桌面程序失败的问题

    2023年10月19日

    flutter-sdk版本:3.13.7

    操作系统: linux

    看本文之前,默认你已经配置好了Android-SDK,运行flutter doctor没有报错了,并且在.bashrc文件中配置好了下面两个环境变量:

    export PUB_HOSTED_URL="https://pub.flutter-io.cn"
    export FLUTTER_STORAGE_BASE_URL="https://mirrors.tuna.tsinghua.edu.cn/flutter"
    

    flutter编译安卓程序卡死在running gradle task 'assembleRelease'状态的原因有2个:

    1. 下载 gradle 速度太慢,会不断失败、重新下载,陷入死循环;
    2. 下载jar包失败,编译时需要下载成百上千的jar包,但是官方服务器太慢,下载会反复失败。

    解决问题的办法页分2步:

    一、解决下载 gradle 失败的问题

    先到 https://services.gradle.org/distributions/ 下载适当版本的 gradle ,我下载的是gradle-7.6.3-all.zip 因为默认下载的是7.5,而7.6.3版是目前7.X系列的最新版。然后修改flutter project下面的android/gradle/wrapper/gradle-wrapper.properties文件,把最后一行改成这样:

    distributionUrl=file:///path/to/gradle-7.6.3-all.zip
    

    此时编译时 flutter 会复制本地的 gradle-7.6.3-all.zip,不会再从官网下载。

    二、解决下载jar包失败的问题

    解决的思路是用国内的jcenter镜像服务器替换官方服务器,具体就是修改flutter project下面的android/build.gradle,修改2段下面这样的代码:

    repositories {
            google()
            mavenCentral()
        }
    

    插入阿里云的镜像服务器地址,改成下面这样:

    repositories {
            maven { url 'https://maven.aliyun.com/repository/central' }
            google()
            mavenCentral()
        }
    

    附:解决编译为linux桌面程序失败的问题

    修改flutter project下面的linux/CMakeLists.txt,在第一行代码cmake_minimum_required(VERSION 3.10)后面插入一句:

    set(CMAKE_CXX_COMPILER "/usr/bin/g++")
    
    备案号:苏ICP备19034936号/ 苏ICP备19034936号-1/ 苏ICP备19034936号-2A    站长邮箱:fuhuizn@163.com   版权所有

    苏公网安备 32050702010684号

    Powered by MarkdownWeb