android - 如何获取 gradle sync 的详细消息?

标签 android gradle

我在 Android Studio 中有一个多模块 (>20) 项目。我面临的问题是,每当任何模块的 build.gradle 文件发生变化或添加新模块时,Android Studio 都会要求进行 gradle 同步,这需要非常高的时间(~12-15 分钟)和内存( 5GB 的顺序)。我想知道为什么会这样?有没有办法找出 gradle sync 期间发生的情况?是否有运行 gradle sync 的终端命令? 请帮忙!

最佳答案

我一直在尝试弄清楚在 gradle sync 期间实际发生了什么,以及如何改进 gradle sync 计时。我总结了我在这个答案中发现的内容。

  1. Gradle 同步是 Android Studio 的一项功能。它的唯一目的是根据项目中的 build.gradle 文件更新 Android Studio 中的项目模型。例如,您可能会注意到应用程序中新创建的模块显示为一个目录,但在 gradle sync 之后(假设您有适合该模块的 build.gradle,它指向 java 源、测试、资源等)该模块是在 Android Studio 中显示为一个库(在您的模块目录中带有一个图标)。您可以引用有用的答案here .
  2. 在一个包含大量模块的项目中,您可能会注意到 gradle sync 过程会消耗大量时间和内存。我不完全理解这背后的原因,但是将 vmstudio.options 文件更改为以下配置在一定程度上帮助我改善了 gradle 同步时间:

-Xms512m
-Xmx4g
-XX:MaxPermSize=2g
-XX:ReservedCodeCacheSize=512m
-XX:+UseCompressedOops

我希望这是有用的!

关于android - 如何获取 gradle sync 的详细消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32503517/

相关文章:

Android SensorEvent 时间戳常量

android - 如何解决[ fatal error ]:序言中不允许包含内容?

android - 产品变体 : Multiple Activities

android - gradle版本和gradle构建工具版本之间的关系

java - 你能在同一个 java 构建中同时拥有 maven 和 gradle 吗?

android - 运行 Google Map API v2 的示例代码时出错

Android/Firebase - 解析 GCM 事件中的时间戳时出错 - 空时间戳

android - 这可以在android中使用非sqlite数据库吗?

Android build.gradle 从另一个文件导入口味

gradle - spring roo可以处理gradle项目吗?