ccyybn
ccyybn
> https://developer.android.com/develop/ui/views/text-and-emoji/emoji2#support-bundled-fonts > > 可以用 bundle font ,但是体积增加 10MiB ,这投入产出比太低了 我按这个文档加入了bundle font和初始化代码,体积确实增加了10MiB,但显示为方框的emoji 却没有变正常,把AutoScaleTextView 继承自 AppCompatTextView 也不行
@rocka 输入法键盘是 FcitxApplication的一部分吗,我发现在主程序的配置界面里面,这个emoji确实变得正常了 但是同样的一个字符串,在键盘里面就不正常,似乎是 `EmojiCompat.init(BundledEmojiCompatConfig(this))` 只在主界面生效了一样 这个地方emoji不正常应该和onDraw无关吧 
@rocka 原来问题是 `canvas.drawText` 不支持EmojiSpan,要用 Span 自己的 draw,`measureTextBounds`也要改 改好后就显示正常了,这是改动 https://github.com/ccyybn/fcitx5-android/commit/1bd8fa256989dc86230ece3c4d3eac5ce5d754ac  不过` StatusAreaEntryUi` 里面还是不行,不知道要怎么改 
@rocka 完美解决,体积大了10MiB,但是都正常显示了 https://github.com/ccyybn/fcitx5-android/commit/2f3610c025f5a85e467d113c20536e28d1df889e APK https://github.com/ccyybn/fcitx5-android/releases/download/0.0.9/org.fcitx.fcitx5.android-0.0.9-10-g2f3610c0-arm64-v8a-release.apk
在我的一台老 `armeabi-v7a` 平板上也有这个现象,不过除了这个问题,`sync` 也会报错 查了一下报错代码在`librime`依赖库 [google/leveldb](https://github.com/google/leveldb) 里面 ``` E/rime.fcitx-rime( 3046): Error opening db 'radical_pinyin': IO error: lock /storage/emulated/0/Android/data/org.fcitx.fcitx5.android/files/data/rime/radical_pinyin.userdb/LOCK: already held by process E/rime.fcitx-rime( 3046): failed to merge snapshot file: /storage/emulated/0/Android/data/org.fcitx.fcitx5.android/files/data/rime/sync/b04033a1-738d-4cb8-a6c3-499de26e21e1/radical_pinyin.userdb.txt...
> 你这个问题是,rime在进行同步的时候可能遇到过崩溃或者什么的,留下了对应的锁文件,找到对应的路径把 lock 文件删除就行了 删了没用,而且在我正常的手机上,这个LOCK文件也是一直存在的,但是不报错
补充一下,只要小企鹅不是当前输入法,比如切换成Gboard,重启后小企鹅输入法列表里面的RIME就还在 而且不是插件消失,插件也还在,就是在添加的输入法里面RIME消失了,必须重新添加
@rocka 把这行注释掉就好了,重启也能正常使用,应该就是系统刚启动时读取不到插件,误删了输入法列表的数据  https://github.com/ccyybn/fcitx5-android/blob/d6a2aee57b0ae65a507ffad232b37bcaa3e6baf0/app/src/main/java/org/fcitx/fcitx5/android/core/data/DataManager.kt#L265C1-L267C18
> @ccyybn > > > 把这行注释掉就好了,重启也能正常使用,应该就是系统刚启动时读取不到插件,误删了输入法列表的数据 > > [ccyybn/fcitx5-android@`d6a2aee`/app/src/main/java/org/fcitx/fcitx5/android/core/data/DataManager.kt#L265C1-L267C18](https://github.com/ccyybn/fcitx5-android/blob/d6a2aee57b0ae65a507ffad232b37bcaa3e6baf0/app/src/main/java/org/fcitx/fcitx5/android/core/data/DataManager.kt#L265C1-L267C18) > > 这里不是“误删”,正常情况下,插件被卸载后,主程序找不到插件,就应该删除插件的数据。所以这里的问题是找出为什么“系统刚启动时读取不到插件”,而不是把卸载插件后删除数据的功能给扔掉 我觉得读取不到很正常,可能输入法先于系统某些功能启动了,这里一视同仁都删除确实是误删(毕竟插件确实还在,而且不删后也能正常使用) 不过我不知道怎样区分是否是刚启动,所以只能先统一注释掉,至少先不影响我正常使用,我平板平时关机省电,每次开机要去添输入法很让人烦躁
> 这个同步报错我看到有人 at 过我,因为他们说和 radical pinyin 有关: > > > Error opening db 'radical_pinyin': IO error: lock /storage/emulated/0/Android/data/org.fcitx.fcitx5.android/files/data/rime/radical_pinyin.userdb/LOCK: already held by process > > * [feat: 部件拆字及辅码 iDvel/rime-ice#643 (comment)](https://github.com/iDvel/rime-ice/pull/643#issuecomment-1913577767) >...