首页 > 解决方案 > Gradle 无法解析生成的类

问题描述

我在我的 android 项目中使用了 Data Binding,直到昨天它都可以正常工作。我不知道发生了什么,但现在无法编译我的项目了:

error: cannot find symbol class BR

有趣的是,数据绑定相关的类是按预期生成的,我可以导航到BR那里查看所有变量。

生成的源位于build/generated/source/apt/debug位置。Android Studio 还会显示generatedJava文件夹,包括BR类,如下:

来自 Android Studio 的 SS

iml文件包含如下条目:

  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
    ...
    <content url="file://$MODULE_DIR$">
      ...
      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
      ...
    </content>
  </component>

一切似乎都很正常。我重新启动了 AS,缓存无效,删除.gradle了项目中的文件夹,清除.gradle/caches了主文件夹,但没有运气!

当 IClean Project时,编辑器以红色显示与数据绑定相关的类(包括BR),这与预期的一样。在 I 之后Rebuild Project,它给了我这个编译错误,但这些类现在已经解决,我可以使用 Cmd + click 导航到它们。在解决它们之后,我尝试重建、制作等,但它总是给我同样的编译错误。

我在这个愚蠢的问题上花了几个小时,非常感谢任何形式的帮助。

PS:这个问题似乎与这个非常相似,但它很旧(即 gradle 和插件不是最新的),并且在评论中指出数据绑定类是可以的。

标签: androidandroid-studiogradleandroid-gradle-pluginandroid-databinding

解决方案


构建窗口显示了一个错误,即我所包含的错误。从终端,我尝试过./gradlew :app:build,它给了我另一个错误,如下所示:

Not sure how to handle insert method's return type.

我已经向 a 添加了一个方法DaoRoom但返回类型不合适。那是个错误。在我修复它之后,另一个错误消失了。


推荐阅读