如题,Flutter从2.2.3升级到2.5版本之后,build时间非常之长,发现构建的控制台中打印了项目中的所有依赖信息,导致时间变长。
解决方案 1
找flutter SDK的存放位置,修改flutter.gradle文件:
文件路径:$flutter_sdk$/packages/flutter_tools/gradle/flutter.gradle
apply plugin: FlutterPlugin
class FlutterPlugin implements Plugin<Project> {
......
@Override
void apply(Project project) {
this.project = project
def rootProject = project.rootProject
......
}
解决方案2
将gradle版本升级到与flutter使用的版本一致,此处2.5.1对应的gradle版本为,6.7.0
分析过程
1、build窗口中打印了很多dependence 信息
build的过程中,build窗口会打印出每一步的操作,查看窗口中,发现打印了很多的dependence信息,我记得在gradle的指令中有这样的一条指令,可以打印所有dependence的信息,当时是为了查看是否有重复依赖情况。此处打印可能是某个build任务,打印了此信息。
2、分析最近代码变更
将代码恢复到分支某个状态,看是否因为最近的gradle修改导致的问题,后来切换了分支之后没有发生变化,仍然打印了上述信息。
3、最近只进行过flutter升级
后来想到最近只有对flutter进行过升级,于是,将flutter进行了降级,降级之后发现build过程果然不再打印依赖信息,再将其升级回来,build 过程出现了依赖信息。
4、查找flutter模块构建过程
既然是flutter模块的问题,那便查看它得构建文件,于是在模块的gradle 中发现如下一行
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
于是找到对应的文件,发现代码中果然添加了打印所有依赖的代码。于是将其注释调,便可以取消打印所有依赖信息。构架过程恢复正常,不再耗时过长。
|