Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 在androidstudio中优化构建时间_Maven_Android Studio_Build_Gradle_Android Gradle Plugin - Fatal编程技术网

Maven 在androidstudio中优化构建时间

Maven 在androidstudio中优化构建时间,maven,android-studio,build,gradle,android-gradle-plugin,Maven,Android Studio,Build,Gradle,Android Gradle Plugin,我尝试过构建它: 平行(有点帮助) daemon=true preDexLibraries true/false(无重大差异) 增量真值 离线 每次超过40秒。不管我是否改变了什么。在“gradle clean”之后构建它需要>50秒 我希望我做错了什么。Eclipse/ant可以通过中的更改构建连续的构建。您需要正确地定义输入和输出,即使对于带有源代码的库项目也是如此。(.您在第二次以后重建时是否会收到最新消息?如果您对其他模块没有任何更改,您可以使用gradlew:app:build构建

我尝试过构建它:

  • 平行(有点帮助)
  • daemon=true
  • preDexLibraries true/false(无重大差异)
  • 增量真值
  • 离线
每次超过40秒。不管我是否改变了什么。在“gradle clean”之后构建它需要>50秒


我希望我做错了什么。Eclipse/ant可以通过中的更改构建连续的构建。您需要正确地定义输入和输出,即使对于带有源代码的库项目也是如此。(.您在第二次以后重建时是否会收到最新消息?

如果您对其他模块没有任何更改,您可以使用
gradlew:app:build
构建应用程序本身。这将消除Gradle在构建其他模块上花费的时间。您也可以使用
gradlew:moduledir单独构建任何模块ectoryname:build
。如果您需要构建一个模块和应用程序,您可以同时执行这两个任务,以避免两次进入Gradle的配置阶段:
gradlew:app:build:moduledirectoryname:build
。如果可能,请更新到Gradle 2.4。速度明显更快(声称20-40%).

最重要的构建时间缩减器之一是preDex任务。请检查preDex是否在您的构建中运行。它在您第一次运行它时会增加构建时间,但在后续构建中会显著减少构建时间,因为您的大多数SDK和库都已编制索引。但是请注意,它在某些情况下不会运行,例如:。如果你使用多重索引

顺便说一句,谷歌非常清楚Gradle和Android Studio的构建时间,并将在即将发布的版本中引入重大改进,包括Jack和Jill,这将允许从源代码直接编译到dex。您可以尝试使用它们进行实验-请参见此处:


同样值得一看最近谷歌I/O的视频:

下载Genymotion emulator。它运行android应用程序非常快,也很好。它将为您节省大量时间。
这是一个链接-

悬赏是为了获得更多的吸引力。您的构建脚本是否包含许多自定义任务?在这种情况下,这些任务可能没有正确配置,因此Gradle无法识别任务何时是最新的?您可以共享脚本和/或其输出吗?没有自定义任务。只有一堆带有源代码的库项目(8)还有几个项目直接用作gradle/maven依赖项。dexOptions{incremental true//trued false以及preDexLibraries false//trued true以及javaMaxHeapSize“4g”jumboMode true}您是否尝试过使用
--profile
构建以查看所有时间都花在了哪里?这将在build/reports中创建一个报告,显示每个任务的时间以及它是否是最新的。