生成的文件(Dagger,LiveData)显示在错误的分支上,如果我删除它们,则会重新生成

Dan*_*son 6 android dagger-2 android-livedata

Dagger生成的文件和LiveData生成的绑定文件都会发生这种情况。

我将更改分支,为新的Live Data布局生成的文件或为新的daggeer组件生成的MemberInjector仍会存在,即使这些新组件实际上位于另一个分支上。

我将执行Invalidate缓存并重新启动以及进行干净的构建。但这是行不通的。我什至尝试手动删除文件,但它们只是重新生成。

我发现要修复它的唯一方法是卸载android studio并重新安装它。

我的使用Mac的同事没有遇到此问题。

Dav*_*jak 11

当在启用了构建缓存的情况下使用Gradle时,如果在切换分支后无法识别不再存在的文件,则可能会发生这种情况,因此它将继续创建引用不存在代码的文件。

清除构建缓存目录(USER_HOME/.gradle/caches/build-cache-1)有助于解决问题


Inl*_*ner 5

我通过以下方式修复了这种问题(dagger 为已删除的类创建了结构):

  1. 编辑gradle.properties

org.gradle.caching=false

  1. 建设项目

  2. 恢复gradle.properties

org.gradle.caching=true

我还注意到仅清理项目和删除缓存是行不通的。


Stu*_*ing 5

对我自己来说,这是@David Medenjak 的回答和其他一些事情的结合。

  1. 删除 Gradle 构建缓存: rm -rf ~/.gradle/caches/build-cache-1/
  2. 不确定是否需要此步骤,但删除模块的build/generated文件夹。
  3. 执行项目的重建。 Build > Rebuild Project