Closed caom0202 closed 1 month ago
你是否自造词上屏后 3 秒内退格删除了?如果是的话这是一个特性,可以防止造错的词被过早记录。
另外我们的 app 的正式发布版(F-Droid 版)已经更新到 9 月 1 日发布的 3.3.0,请你安装新版或者每夜版再尝试能否复现此问题。
你是否自造词上屏后 3 秒内退格删除了?如果是的话这是一个特性,可以防止造错的词被过早记录。
没有删除,是在已经上屏的自造词后面接着输入该词。也尝试了等待3秒后再输入,同样没有被记录。
另外我们的 app 的正式发布版(F-Droid 版)已经更新到 9 月 1 日发布的 3.3.0,请你安装新版或者每夜版再尝试能否复现此问题。
在每夜版仍能复现:
更新日志 nightly-0-gefe0d773-release 构建信息 构建者:Nightly CI Git 仓库:https://github.com/osfans/trime 构建 Git 哈希:efe0d7730c9d352a5f593f8abe55c9e71d8a538c 构建时间:2024年10月14日 00:06:13
检查你的各个配置里是否有:
dictionary:
enable_user_dict: false
检查你的各个配置里是否有:
dictionary: enable_user_dict: false
在 rime 文件夹下 grep -r enable_user_dict
没有结果。
刚部署完的时候是可以记录自造词的,大概不是配置的问题?
检查你的各个配置里是否有:
dictionary: enable_user_dict: false
在 rime 文件夹下
grep -r enable_user_dict
没有结果。刚部署完的时候是可以记录自造词的,大概不是配置的问题?
没有遇到过。
找到原因了,是三星智能管理器 app 的“每日自动优化”的原因,这个功能默认每天凌晨三点运行一次,之后 trime 就无法记录自造词了……
FYI,三星对这个功能的描述是“无用的文件将被删除”,“后台应用程序将被关闭,但不会关闭您最近使用的应用程序”。不太清楚到底是 rime 文件夹中的文件受到了影响,还是 rime 的后台进程受到影响(我之前有对 trime 关闭电池优化等确保它可以后台常驻运行)?
对我个人来说关掉这个功能就好了,如果开发者也认为 trime 方面不需要做什么的话,请直接关闭这个 issue 。
摘要 / Summary
如题, trime 无法记录自造词。重新部署后会恢复正常,但一段时间后会再次无法学习自造词。出现问题时尝试导出日志会失败,提示 java.util.ConcurrentModificationException 。
重现步骤 / Steps to Reproduce
部署,一段时间(通常若干小时)后尝试输入自造词,随即再次尝试输入该词,会发现该词没有被记住,仍然需要手动选字。
预期行为 / Expected Behavior
自造词应当能够被学习记住。
日志 / Log
如上所述,发生问题时的日志无法输出。
以下为刚部署完成时的日志:
Log
``` --------- Device Info OS Name: SP1A.210812.016.G9730ZCU8HWE2 OS Version: 4.14.190-25741239-abG9730ZCU8HWE2 (G9730ZCU8HWE2) OS API Level: 31 Device: beyond1q Model (product): SM-G9730 (beyond1qltezc) Manufacturer: samsung Tags: release-keys Screen Size: 1080 x 2042 Screen Density: 2.625 Screen orientation: Portrait --------- Build Info Package Name: com.osfans.trime Builder: F-Droid Version Code: 20240701 Version Name: v3.2.19-0-ge46046ab-release Build Time: 2024-07-03T00:17:08Z Build Git Hash: e46046abfb030a2687033f74ad00d1b2693af433 --------- beginning of main 10-13 01:00:40.071 I/rime.trime(16992): closed db 'luna_pinyin'. 10-13 01:00:40.093 I/Dialog (16992): mIsDeviceDefault = false, mIsSamsungBasicInteraction = false, isMetaDataInActivity = false 10-13 01:00:40.094 I/DecorView(16992): [INFO] isPopOver=false, config=false 10-13 01:00:40.094 I/DecorView(16992): updateCaptionType >> DecorView@d5d45c0[], isFloating=true, isApplication=true, hasWindowControllerCallback=false, hasWindowDecorCaption=false 10-13 01:00:40.094 D/DecorView(16992): setCaptionType = 0, this = DecorView@d5d45c0[] 10-13 01:00:40.096 D/ScrollView(16992): initGoToTop 10-13 01:00:40.097 D/ScrollView(16992): initGoToTop 10-13 01:00:40.106 I/[rime-main](16992): Starting up Rime APIs ... 10-13 01:00:40.106 I/rime.trime(16992): registering core components. 10-13 01:00:40.106 I/ViewRootImpl@fdcffbb[PrefLauncherAlias](16992): setView = com.android.internal.policy.DecorView@d5d45c0 TM=true 10-13 01:00:40.106 I/rime.trime(16992): registering component: config_builder 10-13 01:00:40.106 I/rime.trime(16992): registering component: config 10-13 01:00:40.106 I/rime.trime(16992): registering component: schema 10-13 01:00:40.106 I/rime.trime(16992): registering component: user_config 10-13 01:00:40.106 I/rime.trime(16992): registering components from module 'dict'. 10-13 01:00:40.106 I/rime.trime(16992): registering component: tabledb 10-13 01:00:40.106 I/rime.trime(16992): registering component: stabledb 10-13 01:00:40.106 I/rime.trime(16992): registering component: plain_userdb 10-13 01:00:40.106 I/rime.trime(16992): registering component: userdb 10-13 01:00:40.106 I/rime.trime(16992): registering component: corrector 10-13 01:00:40.106 I/rime.trime(16992): registering component: dictionary 10-13 01:00:40.106 I/rime.trime(16992): registering component: reverse_lookup_dictionary 10-13 01:00:40.106 I/rime.trime(16992): registering component: user_dictionary 10-13 01:00:40.106 I/rime.trime(16992): registering component: userdb_recovery_task 10-13 01:00:40.107 I/rime.trime(16992): registering components from module 'gears'. 10-13 01:00:40.107 I/rime.trime(16992): registering component: ascii_composer 10-13 01:00:40.107 I/rime.trime(16992): registering component: chord_composer 10-13 01:00:40.107 I/rime.trime(16992): registering component: express_editor 10-13 01:00:40.107 I/rime.trime(16992): registering component: fluid_editor 10-13 01:00:40.107 I/rime.trime(16992): registering component: fluency_editor 10-13 01:00:40.107 I/rime.trime(16992): registering component: key_binder 10-13 01:00:40.107 I/rime.trime(16992): registering component: navigator 10-13 01:00:40.107 I/rime.trime(16992): registering component: punctuator 10-13 01:00:40.107 I/rime.trime(16992): registering component: recognizer 10-13 01:00:40.107 I/rime.trime(16992): registering component: selector 10-13 01:00:40.107 I/rime.trime(16992): registering component: speller 10-13 01:00:40.107 I/rime.trime(16992): registering component: shape_processor 10-13 01:00:40.107 I/rime.trime(16992): registering component: abc_segmentor 10-13 01:00:40.107 I/rime.trime(16992): registering component: affix_segmentor 10-13 01:00:40.107 I/rime.trime(16992): registering component: ascii_segmentor 10-13 01:00:40.107 I/rime.trime(16992): registering component: matcher 10-13 01:00:40.107 I/rime.trime(16992): registering component: punct_segmentor 10-13 01:00:40.107 I/rime.trime(16992): registering component: fallback_segmentor 10-13 01:00:40.107 I/rime.trime(16992): registering component: echo_translator 10-13 01:00:40.107 I/rime.trime(16992): registering component: punct_translator 10-13 01:00:40.107 I/rime.trime(16992): registering component: table_translator 10-13 01:00:40.107 I/rime.trime(16992): registering component: script_translator 10-13 01:00:40.107 I/rime.trime(16992): registering component: r10n_translator 10-13 01:00:40.107 I/rime.trime(16992): registering component: reverse_lookup_translator 10-13 01:00:40.107 I/rime.trime(16992): registering component: schema_list_translator 10-13 01:00:40.107 I/rime.trime(16992): registering component: switch_translator 10-13 01:00:40.107 I/rime.trime(16992): registering component: history_translator 10-13 01:00:40.107 I/rime.trime(16992): registering component: simplifier 10-13 01:00:40.107 I/rime.trime(16992): registering component: uniquifier 10-13 01:00:40.112 I/rime.trime(16992): registering component: charset_filter 10-13 01:00:40.112 I/rime.trime(16992): registering component: cjk_minifier 10-13 01:00:40.112 I/rime.trime(16992): registering component: reverse_lookup_filter 10-13 01:00:40.112 I/rime.trime(16992): registering component: single_char_filter 10-13 01:00:40.112 I/rime.trime(16992): registering component: shape_formatter 10-13 01:00:40.112 I/rime.trime(16992): registering component: codepoint_translator 10-13 01:00:40.112 I/rime.trime(16992): registering component: charset_filter 10-13 01:00:40.112 W/rime.trime(16992): replacing previously registered component: charset_filter 10-13 01:00:40.112 I/rime.trime(16992): registering components from module 'lua'. 10-13 01:00:40.114 I/rime.trime(16992): rime.lua info: rime.lua should be either in the rime user data directory or in the rime shared data directory 10-13 01:00:40.114 I/rime.trime(16992): registering component: lua_translator 10-13 01:00:40.115 I/rime.trime(16992): registering component: lua_filter 10-13 01:00:40.115 I/rime.trime(16992): registering component: lua_segmentor 10-13 01:00:40.115 I/rime.trime(16992): registering component: lua_processor 10-13 01:00:40.115 I/rime.trime(16992): registering components from module 'grammar'. 10-13 01:00:40.115 I/rime.trime(16992): registering component: grammar 10-13 01:00:40.115 I/rime.trime(16992): registering component: predictor 10-13 01:00:40.115 I/rime.trime(16992): registering component: predict_translator 10-13 01:00:40.115 I/rime.trime(16992): registering components from module 'levers'. 10-13 01:00:40.115 I/rime.trime(16992): registering component: detect_modifications 10-13 01:00:40.115 I/rime.trime(16992): registering component: installation_update 10-13 01:00:40.115 I/rime.trime(16992): registering component: workspace_update 10-13 01:00:40.115 I/rime.trime(16992): registering component: schema_update 10-13 01:00:40.115 I/rime.trime(16992): registering component: config_file_update 10-13 01:00:40.115 I/rime.trime(16992): registering component: prebuild_all_schemas 10-13 01:00:40.115 I/rime.trime(16992): registering component: user_dict_upgrade 10-13 01:00:40.115 I/rime.trime(16992): registering component: cleanup_trash 10-13 01:00:40.115 I/rime.trime(16992): registering component: user_dict_sync 10-13 01:00:40.115 I/rime.trime(16992): registering component: backup_config_files 10-13 01:00:40.115 I/rime.trime(16992): registering component: clean_old_log_files 10-13 01:00:40.117 W/rime.trime(16992): couldn't list directory './': filesystem error: in directory_iterator::directory_iterator(...): Permission denied [./] 10-13 01:00:40.117 I/rime.trime(16992): updating rime installation info. 10-13 01:00:40.117 I/rime.trime(16992): loading config file '/storage/emulated/0/rime/installation.yaml'. 10-13 01:00:40.118 I/ViewRootImpl@fdcffbb[PrefLauncherAlias](16992): Relayout returned: old=(0,112,1080,2154) new=(28,939,1052,1326) req=(1024,387)0 dur=8 res=0x7 s={true -5476376643687510944} ch=true fn=-1 10-13 01:00:40.119 D/OpenGLRenderer(16992): eglCreateWindowSurface 10-13 01:00:40.119 I/rime.trime(16992): installation info exists. installation id: 9074fed1-9eba-4db3-b59b-f374ca81fd0f 10-13 01:00:40.119 I/rime.trime(16992): sync dir: /sdcard/rime/sync_dir 10-13 01:00:40.119 I/rime.trime(16992): previous distribution: trime 10-13 01:00:40.119 I/rime.trime(16992): previous distribution version: v3.2.19 10-13 01:00:40.119 I/rime.trime(16992): previous Rime version: 1.11.2 10-13 01:00:40.119 I/rime.trime(16992): starting work thread for 3 tasks. 10-13 01:00:40.119 I/ViewRootImpl@fdcffbb[PrefLauncherAlias](16992): [DP] dp(1) 1 android.view.ViewRootImpl.reportNextDraw:11420 android.view.ViewRootImpl.performTraversals:4193 android.view.ViewRootImpl.doTraversal:2919 10-13 01:00:40.120 I/rime.trime(16992): running deployment tasks: 10-13 01:00:40.120 I/rime.trime(16992): updating workspace. 10-13 01:00:40.120 I/rime.trime(16992): loading config file '/storage/emulated/0/rime/build/default.yaml'. 10-13 01:00:40.122 I/BufferQueueProducer(16992): [ViewRootImpl@fdcffbb[PrefLauncherAlias]#717(BLAST Consumer)717](id:4260000002cd,api:1,p:16992,c:16992) queueBuffer: queued for the first time. 10-13 01:00:40.124 I/rime.trime(16992): source file changed: /storage/emulated/0/rime/default.yaml 10-13 01:00:40.124 I/rime.trime(16992): loading config file '/storage/emulated/0/rime/default.yaml'. 10-13 01:00:40.124 I/ViewRootImpl@fdcffbb[PrefLauncherAlias](16992): [DP] pdf(0) 1 android.view.ViewRootImpl.lambda$addFrameCompleteCallbackIfNeeded$3$ViewRootImpl:4995 android.view.ViewRootImpl$$ExternalSyntheticLambda16.run:6 android.os.Handler.handleCallback:938 10-13 01:00:40.124 I/ViewRootImpl@fdcffbb[PrefLauncherAlias](16992): [DP] rdf() 10-13 01:00:40.124 D/ViewRootImpl@fdcffbb[PrefLauncherAlias](16992): reportDrawFinished (fn: -1) 10-13 01:00:40.126 I/rime.trime(16992): auto-patch default:/__patch: default.custom:/patch? 10-13 01:00:40.126 I/rime.trime(16992): loading config file '/storage/emulated/0/rime/punctuation.yaml'. 10-13 01:00:40.129 I/rime.trime(16992): auto-patch punctuation:/__patch: punctuation.custom:/patch? 10-13 01:00:40.131 W/rime.trime(16992): nonexistent config file '/storage/emulated/0/rime/punctuation.custom.yaml'. 10-13 01:00:40.131 I/rime.trime(16992): optional resource not loaded: punctuation.custom 10-13 01:00:40.131 I/rime.trime(16992): resolved: Patch(punctuation.custom:patch截图 / Screenshot
No response
附加信息 / Additional Context
使用默认配置;主题为同文风;方案为小鹤双拼,并增加以下配置:
系统版本 / OS Version
OneUI 4.1, Android 12
应用版本 / App Version
v3.2.19-0-ge46046ab-release
构建信息 / Build Information
构建者:F-Droid Git 仓库:https://github.com/osfans/trime 构建 Git 哈希:e46046abfb030a2687033f74ad00d1b2693af433 构建时间:2024年7月3日 08:17:08