我正在开发相当大的多模块 Android 项目,该项目使用 Data Binding、Dagger 2 和 Java 与 Kotlin 混合。
在项目“代码”文件(.java 和 .kt 文件,包括活动、自定义类等)发生最细微的变化后,构建时间会很长(最多 2 分钟)。即使我添加新行之类的更改或修改注释中的一个字符,也会发生这种情况。
我确实使用 --info 参数运行了 Gradle 脚本并得到了以下提示,它“挂起”了以下任务:
任务 ':AppName:kaptDebugKotlin' 的构建缓存键是 1a3a53e5f9b0934ab50a25c0133055f2 任务 ':AppName:kaptDebugKotlin' 的最新检查耗时 0.0 秒。它不是最新的,因为:输入属性“源”文件 /Users/username/Android/project-directory/AppName/build/generated/source/dataBinding/debug/android/databinding/layouts/DataBindingInfo.java 已更改. 输入属性“源”文件 /Users/username/Android/project-directory/AppName/src/main/java/com/package/to/my/activity/SomeActivity.java 已更改。
生成的 DataBindingInfo.java 文件仅包含一个 buildId:
package android.databinding.layouts;
import android.databinding.BindingBuildInfo;
@BindingBuildInfo(buildId="23567c57-d3c8-4999-bc79-6211351c7d89")
public class DataBindingInfo {}
每次代码发生任何变化时,buildId 哈希值都会发生变化。
该项目使用 Crashlytics,但我为调试构建禁用了它。
这种行为的原因可能是什么?
编辑:即使 Android Studio 关闭并且我正在外部编辑器中进行更改并从命令行运行构建,也会在项目中重新生成 buildId。