Gradle 构建耗时过长

Posted

技术标签:

【中文标题】Gradle 构建耗时过长【英文标题】:Gradle build taking too long 【发布时间】:2016-09-13 11:56:05 【问题描述】:

执行任务:[:app:clean, :app:generateDebugSources, :app:generateDebugandroidTestSources, :app:prepareDebugUnitTestDependencies, :app:mockableAndroidJar, :app:assembleDebug]

按需配置并行执行是一种孵化 特征。增量java编译是一个孵化特性。 :app:clean :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE :app:checkDebugManifest :app:preReleaseBuild UP-TO-DATE :app:prepareAsiaIvityAndroidMarqueeview115Library :app:prepare ComAndraskindlerParallaxviewpagerParallaxviewpager031库 :app:prepareComAndroidSupportAnimatedVectorDrawable2321Library :app:prepareComAndroidSupportAppcompatV72321Library :app:prepareComAndroidSupportMultidex101Library :app:prepareComAndroidSupportRecyclerviewV72321Library :app:prepareComAndroidSupportSupportV42321库 :app:prepareComAndroidSupportSupportVectorDrawable2321Library :app:prepare ComGithubTecheryProgresshintLibrary023Library :app:prepare ComGithubTecheryProgresshintLibraryAddition023Library :app:prepareComH6ah4iAndroidWidgetVerticalseekbarVerticalseekbar051Library :app:prepare ComOgaclejapanSmarttablayoutLibrary160Library :app:prepare ComToxicBakeryViewpagerTransformsViewPagerTransforms1232Library :app:prepareDebugDependencies :app:compileDebugAidl :app:compileDebugRenderscript :app:generateDebugBuildConfig :app:mergeDebugShaders :app:compileDebugShaders :app:generateDebugAssets :app:mergeDebugAssets :app:generateDebugResValues UP-TO-DATE :app:generateDebugResources :app:mergeDebugResources :app:processDebugManifest :app:processDebugResources :app:generateDebugSources :app:preDebugAndroidTestBuild UP-TO-DATE :app:prepareComAndroidSupportMultidexInstrumentation101Library :app:prepareDebugAndroidTestDependencies :app:compileDebugAndroidTestAidl :app:processDebugAndroidTestManifest :app:compileDebugAndroidTestRenderscript :app:generateDebugAndroidTestBuildConfig :app:mergeDebugAndroidTestShaders :app:compileDebugAndroidTestShaders :app:generateDebugAndroidTestAssets :app:mergeDebugAndroidTestAssets :app:generateDebugAndroidTestResValues UP-TO-DATE :app:generateDebugAndroidTestResources :app:mergeDebugAndroidTestResources :app:processDebugAndroidTestResources :app:generateDebugAndroidTestSources :app:preDebugUnitTestBuild 最新:app:prepareDebugUnitTestDependencies :app:mockableAndroidJar 最新 :app:incrementalDebugJavaCompilationSafeguard :app:compileDebugJavaWithJavac :app:compileDebugJavaWithJavac - 不是 增量(例如输出已更改,之前没有执行等)。

注意:某些输入文件使用或覆盖了已弃用的 API。笔记: 使用 -Xlint:deprecation 重新编译以了解详细信息。

:app:compileDebugNdk UP-TO-DATE :app:compileDebugSources :app:buildInfoDebugLoader :app:transformClassesWithExtractJarsForDebug :app:transformClassesWithInstantRunVerifierForDebug :app:transformClassesWithJavaResourcesVerifierForDebug 最新 :app:mergeDebugJniLibFolders :app:transformNative_libsWithMergeJniLibsForDebug :app:processDebugJavaRes 最新 :app:transformResourcesWithMergeJavaResForDebug :app:transformResourcesAndNative_libsWithJavaResourcesVerifierForDebug 最新:app:transformClassesWithInstantRunForDebug :app:transformClasses_enhancedWithInstant+reloadDexForDebug :app:incrementalDebugTasks :app:prePackageMarkerForDebug :app:fastDeployDebugExtractor :app:generateDebugInstantRunAppInfo :app:coldswapKickerDebug :app:transformClassesWithInstantRunSlicerForDebug :app:transformClassesWithDexForDebug 要在进程中运行 dex,Gradle 守护进程需要更大的堆。它目前大约有 11833 MB。 为了更快的构建,增加 Gradle 的最大堆大小 守护进程超过 13312 MB。做这组 org.gradle.jvmargs=-Xmx13312M 在项目 gradle.properties 中。为了 更多信息见 https://docs.gradle.org/current/userguide/build_environment.html :app:validateDebugSigning :app:packageDebug :app:zipalignDebug :app:fullDebugBuildInfoGenerator :app:assembleDebug

构建成功

总时间:7 分 41.523 秒

【问题讨论】:

***.com/questions/16775197/… 我的问题已经解决了。这需要时间,因为我有 ubuntu 并且我正在从外部 ntfs 硬盘驱动器打开和运行我的项目。我将其重新格式化为 ext4 并按照给定的帖子减少了 构建时间从 7 分钟到 2 秒 【参考方案1】:

默认 Gradle Daemon VM 内存分配为 1 GB — 不足以支持 dexInProcess,因此您需要将其设置为至少 2 GB。

要加快构建速度,您可以做的一件事是增加 Gradle Daemon VM 内存分配。

gradle.properties 中添加org.gradle.jvmargs=-Xmx2048m 行。

很好地了解 Android Studio 2.1 功能Dex In Process

https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e?_utm_source=1-2-2#.g4ba8piij

还可以观看视频:

https://www.youtube.com/watch?v=-SY5nkNVUn0

【讨论】:

始终欢迎提供潜在解决方案的链接,但请add context around the link,以便您的其他用户知道它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。考虑到仅仅是指向外部站点的链接是Why and how are some answers deleted? 的一个可能原因。 绝对正确。感谢您纠正我,编辑了答案。【参考方案2】:

让你的 gradle 离线。

转到文件 -> 设置搜索 gradle 并检查离线工作。

【讨论】:

考虑到您有时需要它上网,这几乎不是一个解决方案 我的问题解决了。这需要时间,因为我有 ubuntu 并且我正在从外部 ntfs 硬盘驱动器打开和运行我的项目。我将其重新格式化为 ext4 并按照评论部分中给出的帖子 Amit Vaghela,将构建时间从 7 分钟缩短到 2 秒【参考方案3】:

我的问题已解决。这需要时间,因为我有 ubuntu,并且我正在从外部 ntfs 硬盘驱动器打开和运行我的项目。我将其重新格式化为 ext4 并按照 Amit Vaghela 在评论部分中给出的帖子进行操作,这减少了构建时间从 7 分钟到 2 秒。

这是“Amit Vaghela”提供的链接:

Building and running app via Gradle and Android Studio is slower than via Eclipse

【讨论】:

以上是关于Gradle 构建耗时过长的主要内容,如果未能解决你的问题,请参考以下文章

在 android studio 中,Gradle 同步构建模型耗时太长

Android studio 编辑build.gradle文件时卡顿时间过长是啥原因

Android Studio Build running 时间过长且失败Gradle

加快AS的Gradle Build速度

如何使 gradle processResources 任务更快

记录一次耗时编译Gradle一直sync良久问题