Android Studio调试版本boolean属性缓存异常问题求助
关于Android Studio调试版本中const val属性缓存导致的逻辑异常问题
问题详情
- 自Android Studio Electric Eel版本起,多次在运行应用调试版本时遇到危险Bug:调试状态下某IF条件中
Model.skipCheck的值为false,理论上条件不应成立,但实际却触发了条件内的逻辑。 Model.skipCheck是Kotlin单例对象的const val只读属性,原本用于在调试版本中跳过部分检查。- 推测是IDE构建调试版本时对该属性进行了缓存(此前常将该属性设为true运行应用)。
- 临时修复方式:对涉及该行的代码做无关紧要的小修改,触发编译器重新编译这部分代码后问题即可解决,但该问题本身十分危险且难以排查。
- 当前使用IDE版本:Android Studio Flamingo | 2022.2.1
相关代码
object Model { const val skipCheck = false var preventLogin = false var blacklisted: List<User>? = null }
疑问
- 是否有其他开发者遇到过该问题?
- 这是Android Studio的已知Bug吗?
- 有没有可行的办法避免此类问题发生?
内容的提问来源于stack exchange,提问作者Stack Diego
相关产品推荐
相关产品推荐

