我有一个多模块项目。我使用 kotlin + dagger 2 + databindingv2
。使用最新的 3.2 android studio
。
但是,每当我通过更改一个模块中的某些内容来执行 incremental build
时,生成的其他一些模块(不依赖于更改的模块)数据绑定(bind)类会发生更改,从而在该模块上调用 kapt。从而增加构建时间。
Input property 'annotationProcessorOptionProviders$kotlin_gradle_plugin.$0.$0.buildDir'
file /build/intermediates/data-binding/debug/compiler/dependent-lib-artifacts/
***-setter_store.bin has changed.
有人遇到过这个问题吗?
有什么解决办法吗?
最佳答案
我自己发现了这个问题。由于存在多个模块且模块相互依赖,因此使用数据绑定(bind)库中的 ObservableField 将一个字符串资源绑定(bind)到 xml。该字符串资源在我更改了代码的那个模块中。因此,依赖于该字符串资源的其他模块正在触发该模块的 kapt。所以我从所有其他模块中删除了所有依赖项。现在其他任务没有触发。
但我仍然发现 kapt 任务并没有得到增量。如果发生变化,它将触发该模块的整个 kapt 任务。
关于android - 很长的 gradle 构建时间 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51331811/