解决Flutter Android打包慢的问题:修改gradlew和gradlew.bat开启离线模式

解决Android项目打包慢的问题:通过离线模式优化gradlew和gradlew.bat

在公司的项目中,每次发布版本都需要打包超过10个渠道包。不管是在调试(debug)模式下还是在正式发布(release)模式下,打包过程都异常缓慢,大大浪费了开发时间和调试时间。为了解决这个问题,通过观察日志,发现大量的时间都消耗在下载第三方库的网络资源上,然而令人困扰的是,每个请求都以401错误码结束。为了解决这个下载问题,我们进行了一系列的尝试。

最初我们尝试修改了 gradlew 的版本,以及在 gradle.properties 文件中增加了 offline 标识,但遗憾的是这些尝试都未成功。然后我尝试在Android工程中开启gradle的offline开关 打开这个开关后,能成功的跳过第三方库的网络资源下载。但是当我执行flutter build apk,或者在flutter工程直接run或者debug,这个离线模式并不生效。根据之前的思路,最终发现修改项目工程中的 gradlew 和 gradlew.bat 文件,可以开启离线模式。

优化步骤:

修改gradlew

对于Linux/Unix系统,我们需要修改 gradlew 文件,并在文件中找到以下代码段:

bash 复制代码
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

在结尾处加上 --offline 参数:

bash 复制代码
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" --offline

修改gradlew.bat

对于Windows系统,我们需要修改 gradlew.bat 文件,并在文件中找到以下代码段:

batch 复制代码
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%

在结尾处加上 --offline 参数:

batch 复制代码
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% --offline

这些简单的修改使得Gradle在执行打包任务时不再尝试下载依赖,而是直接使用本地缓存,从而显著提升了打包速度。我开启了离线打包后,发现打包速度从原来的10分钟缩短到了1分钟内,极大地提高了发布版本的效率和流畅度。

相关推荐
Android小码家37 分钟前
framework&framework-minus-apex&android.jar的区别
android·python·jar
技术风向解码者1 小时前
安卓跨端选型:为什么优先看 Kuikly
android
科小怪1 小时前
大肥鱼桌宠下载(2026最新版):在安卓桌面上养一条会走会弹会碎碎念的胖鱼
android
qq3621967051 小时前
安卓安装包完整性校验:怎么确认下载的 APK 没被动过手脚
android
FLJwu1 小时前
《运动相机硬件防护选型实战》专栏|第二篇(PPTC 自恢复保险丝)
android·经验分享·数码相机·1024程序员节·运动相机
程序员老刘·1 小时前
从短剧App的bug看响应式编程在AI时代的优势
flutter·ai编程·跨平台开发
驰骋工作流12 小时前
流程时效考核的表结构:从待办时限到 WF_CH 考核结果驰骋BPM驰骋低代码低代码工作流引擎
android·低代码·rxjava
传奇开心果编程13 小时前
【Flutter踩坑排雷】第7课:巨型 build 函数坑|全部 UI 写在同一个 build,维护难、隐性异常
android·flutter·ios·移动开发·跨平台·dart·声明式ui
程序员老刘16 小时前
从短剧App的bug看响应式编程在AI时代的优势
flutter·ai编程·客户端
方白羽17 小时前
Android 双开环境底层剖析与风控检测落地
android·安全·app