【发布时间】:2020-10-28 00:48:49
【问题描述】:
我使用 Glide 4.11.0 和 Realm 6.0.2 已经有一段时间了,最近将 Android Studio 4.0.x 升级到了 4.1。一切进展顺利。今天我运行了棉绒检查器,并开始做一些“清理”,没有什么不寻常的(看起来)。我经常做的其中一件事是替换针对 R.id 进行测试的 switch 语句。根据 lint 警告使用 if-else 语句来说明 Gradle 5.0 中将会发生什么。
当我这样做时,我确实使用了一些我命名为 'id' 的 int 变量来替换要比较的值 - 即,而不是如下的 switch 语句:
switch (menuOpt.getId()) {
case R.id.xxx:
...
}
我愿意:
int id = menuOpt.getId();
if ( id == R.id.XXX) {
} else if....
根据新指南。 突然,在一个完整的构建过程中,AS 抱怨它不再识别 GlideApp,而且我还收到一条关于 Realm 无法正确处理的非常奇怪的消息:
C:\BLD\AndroidStudioProjects\InTouch\app\src\main\java\com\reddragon\intouch\ui\MediaPlayerActivity.java:61: error: cannot find symbol
import com.reddragon.intouch.utils.GlideApp;
^
symbol: class GlideApp
location: package com.reddragon.intouch.utils
C:\BLD\AndroidStudioProjects\InTouch\app\src\main\java\com\reddragon\intouch\ui\MediaDialogActivity.java:92: error: cannot find symbol
import com.reddragon.intouch.utils.GlideApp;
^
symbol: class GlideApp
location: package com.reddragon.intouch.utils
C:\BLD\AndroidStudioProjects\InTouch\app\src\main\java\com\reddragon\intouch\ui\MediaListActivity.java:48: error: cannot find symbol
import com.reddragon.intouch.utils.GlideApp;
^
symbol: class GlideApp
location: package com.reddragon.intouch.utils
Note: Version 10.0.0 of Realm is now available: https://static.realm.io/downloads/java/latest
Note: Processing class Album
error: Class "Album" contains illegal final field "id".
Note: [1] Wrote GeneratedAppGlideModule with: []
Class "Album" contains illegal final field "id".
4 errors
我在专辑类中使用“id”字段大约 2 年了,没有任何问题!
重建、使缓存失效和重新启动、同步 gradle 文件或“从磁盘重新加载所有内容”似乎无济于事。
实际上,如果我无效并重新启动,我不会在引用 GlideApp 的违规类中看到红色波浪线,但是一旦我开始运行应用程序并且它通过构建过程就会出错。
我在 Google 上搜索了一下,发现一篇帖子似乎 Realm 和 Glide (RequestOptions) 之间存在一些冲突,但奇怪的是为什么会突然开始发生这种情况?
我已经验证 GlideAppjava 类实际上正在构建 - 我正在使用调试构建变体,并且我可以在文件系统 GlideApp.java 中看到,它位于我拥有的正确包的 ap_generated_sources/debug 目录中我使用 @GlideModule 注释扩展 AppGlideModule 的类。
所以 GlideApp 正在生成。它只是没有得到认可。
另外一个新事物是我最近创建了一个动态功能模块。这个模块确实依赖于基础模块中的一个类(其中 GlideApp 被引用)。不确定这是否相关(在我开始进行 lint 清理之前,我有很多很多成功的构建)。
真令人沮丧!任何帮助表示赞赏。
【问题讨论】:
标签: android-glide annotation-processing realm-java