R 4.2.0中shinystan 2.6.0 demo无法启动、窗口闪退报错
问题说明
运行环境:R 4.2.0,shinystan 2.6.0
执行demo启动命令后,弹出的Shiny程序窗口快速闪退,控制台输出日志如下:
Listening on http://127.0.0.1:4995 The `name` provided ('refresh') is deprecated in Font Awesome 5: * please consider using 'sync' or 'fas fa-sync' instead * use the `verify_fa = FALSE` to deactivate these messages The `name` provided ('refresh') is deprecated in Font Awesome 5: * please consider using 'sync' or 'fas fa-sync' instead * use the `verify_fa = FALSE` to deactivate these messages Warning: Error in switch: unused arguments (`By model parameter` = "parameter", `Sample information` = "lp", `Treedepth information` = "treedepth", `Step size information` = "stepsize", `Divergence information` = "divergent") 3: shiny::runApp 2: launch 1: shinystan::launch_shinystan_demo
复现代码:
install.packages("shinystan") library(shinystan) shinystan::launch_shinystan_demo()
故障原因
日志里的Font Awesome图标弃用警告仅为提示信息,不是闪退的根因。
真正触发崩溃的是switch函数抛出的未识别参数错误,本质是shinystan 2.6.0与高版本shiny包存在兼容性问题:shiny在后续版本更新中收紧了内部参数校验规则,shinystan 2.6.0中为导航栏编写的命名传参写法不再被支持,运行时直接触发错误导致应用强制退出。
解决方案
- 方案一(推荐):升级shinystan到最新CRAN正式版,官方已在后续迭代中修复了该兼容问题,执行以下命令后重启R会话即可正常运行:
install.packages("shinystan") - 方案二:如果因项目依赖限制必须使用shinystan 2.6.0版本,可将shiny降级到兼容的1.7.4版本,执行以下命令安装:
安装完成后重启R会话,再启动demo即可正常打开窗口。# 未安装remotes包可先运行第一行命令 install.packages("remotes") remotes::install_version("shiny", version = "1.7.4") - 针对Font Awesome的冗余提示,如果需要关闭,可在启动app前运行以下命令关闭图标校验,不会影响任何功能使用:
options(shiny.fontawesome_verify = FALSE)
内容的提问来源于stack exchange,提问作者Anthony
相关产品推荐
相关产品推荐

