android - Gradle 无法解析生成的类
问题描述
我在我的 android 项目中使用了 Data Binding,直到昨天它都可以正常工作。我不知道发生了什么,但现在无法编译我的项目了:
error: cannot find symbol class BR
有趣的是,数据绑定相关的类是按预期生成的,我可以导航到BR
那里查看所有变量。
生成的源位于build/generated/source/apt/debug
位置。Android Studio 还会显示generatedJava
文件夹,包括BR
类,如下:
该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 和插件不是最新的),并且在评论中指出数据绑定类是可以的。
解决方案
构建窗口显示了一个错误,即我所包含的错误。从终端,我尝试过./gradlew :app:build
,它给了我另一个错误,如下所示:
Not sure how to handle insert method's return type.
我已经向 a 添加了一个方法Dao
,Room
但返回类型不合适。那是个错误。在我修复它之后,另一个错误消失了。
推荐阅读
- db2 - 用于创建用户的 Db2 查询
- mysql-workbench - 如何更改 Windows 的选项文件 (my.ini) 位置?
- javascript - Phaser 3 创建一个带有分和秒的游戏时钟
- selenium - 无法从网站 https://demoqa.com/webtables 的 web 表中检索数据
- r - RMarkdown 投影仪和目录
- graphviz - 如何只写一次长标签,并在图中使用对它们的引用?
- angular - 一个又一个http调用的角度合并图
- pytorch - 解码器总是预测相同的标记
- javascript - Material-UI 选择器在模糊而不是更改时触发验证?
- python - KivyMD:无法绑定函数