Closed ljk5403 closed 6 months ago
仅看报错信息,与 #959 #946 是同样的问题 如果方便的话,可以上传脱敏之后的用户目录 build目录,以及实时日志内的rime的报错输出。
@ljk5403 @wxyzh #959 #946 和本 Issue 的真正问题都始于这里:https://github.com/osfans/trime/blob/bae618f78b059f68438a9e3dc8bc7cc7fcd4569a/app/src/main/java/com/osfans/trime/data/theme/Config.java#L475
我们在解析主题的类里初始化了这个 Map 来缓存配色方案下每个条目对应的颜色值或者图片路径以期提高性能。但如大家所见,这个 Map 声明的位置相对靠下,而对配色方案的缓存机制则在类的初始化时就开始了,这就会导致对这个缓存容器的调用可能会早于容器本身的初始化。这其实是个隐性的坑:尽管在 Kotlin / Java 中,将变量的声明晚于对其的调用在 IDE 中不会报错,但是在实际运行时,则会有几率出现因为调用早于初始化而出现“尝试在 null 对象上调用方法”进而引发空指针异常,使得程序崩溃。
请看新版本有无此问题。Please take a look for new version. 每夜版/Nigntly Build:https://github.com/osfans/trime/releases/tag/nightly
Describe the bug Motorola Edge S Pro, Android 12, 尝鲜试用了一下,安装后可以正常进入输入法配置界面,但点击任何可输入文字的框立即崩溃(未显示输入法键盘)。
Log
Smartphone (please complete the following information):