编译基础知识
最早的计算机用的纸带输入,纸带上有孔表示1,没孔表示0,这些纸带要变成实际的计算机指令,需要一个转换的过程,转换就是编译。早期的计算机环境比较简单,转换过程也很简单,随着各类新技术的出现,编译过程越来越复杂,编译环境越来越多面,带来的困惑也越来越多。
Flutter编译APK半小时卡住原因背景
Flutter是兼容多平台开发的UI工具包,支持多平台多端开发是Flutter的优势。在知道我要开发手机App的意图后,AI推荐了Flutter,并生成了代码,给出了编译提示。我提示按下面命令行进行编译:
D:\cowapp>D:\flutter_windows_3.44.4-stable\bin\flutter build apk --release Exception in thread "main" java.lang.RuntimeException: Timeout of 120000 reached waiting for exclusive access to file: C:\Users\huawei\.gradle\wrapper\dists\gradle-9.1.0-all\7wzd0jkjit61aq2p43wpjgij9\gradle-9.1.0-all.zip at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:61) at org.gradle.wrapper.Install.createDist(Install.java:48) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61) Running Gradle task 'assembleRelease'... 120.4s [!] Gradle threw an error while downloading artifacts from the network. Retrying Gradle Build: #1, wait time: 100ms Exception in thread "main" java.lang.RuntimeException: Timeout of 120000 reached waiting for exclusive access to file: C:\Users\huawei\.gradle\wrapper\dists\gradle-9.1.0-all\7wzd0jkjit61aq2p43wpjgij9\gradle-9.1.0-all.zip at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:61) at org.gradle.wrapper.Install.createDist(Install.java:48) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61) Running Gradle task 'assembleRelease'... 120.3s [!] Gradle threw an error while downloading artifacts from the network. Gradle task assembleRelease failed with exit code 1 D:\cowapp> 手工放gradle.zip不行,改wrapper。#distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-all.zip distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-9.1.0-all.zip FAILURE: Build failed with an exception. * What went wrong: Timeout waiting to lock build logic queue. It is currently in use by another process. Owner PID: 11812 Our PID: 10152 Owner Operation: Our operation: Lock file: D:\cowapp\android\.gradle\noVersion\buildLogic.lock * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to generate a Build Scan (Powered by Develocity). > Get more help at https://help.gradle.org. BUILD FAILED in 1m 5s Running Gradle task 'assembleRelease'... 66.0s Gradle task assembleRelease failed with exit code 1
注意里面的核心提示,等待编译逻辑队列锁定,当前被其它进程使用。我当时不着急看其它事情了,另外对这环境也第一次用,看到提示查AI提示说要找占用进程并且要杀死进程,分析进程很麻烦,新手做不了,就是高手也要占时间,这是治表不治本的措施。
灵机一动
原来想是计算机休眠息屏可能会有影响,后来否认,不是这个导致卡。突然想到Trae软件还在运行,把Trae软件关闭,编译在几秒就完成了。原因Trae加载了一套编译环境,和命令行里的编译环境冲突,就编译不了。具体是Trae也加载了gradle进程,两个gradle进程争抢文件,导致编译卡住了。
AI再强大,有些环境也不是AI能完全预测的,学好软件开发基础,能抄也能想,才好解决问题。

