8

我有一个多模块项目。我用kotlin + dagger 2 + databindingv2. 使用最新的3.2 android studio.

但是,每当我incremental build通过更改一个模块中的某些内容来执行时,生成的其他一些模块(不依赖于更改的模块)数据绑定类会发生更改,从而在该模块上调用 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.

有没有人遇到过这个问题?

有什么解决办法吗?

4

1 回答 1

0

我自己也发现了这个问题。由于存在多个模块且模块相互依赖,因此使用数据绑定库中的 ObservableField 将一个字符串资源绑定到 xml。该字符串资源在我更改了代码的那个模块中。因此,依赖于该字符串资源的其他模块正在触发该模块的 kapt。所以我从所有其他模块中删除了所有依赖项。现在其他任务没有触发。

但我仍然发现 kapt 任务并没有得到增量。如果发生变化,它将触发该模块的整个 kapt 任务。

于 2018-07-23T17:51:49.477 回答