在shinyapps.io部署R应用遇未处理异常错误求助
看起来你在部署首个Shiny应用到shinyapps.io时卡在了rlang包的构建环节,先把你提供的错误日志贴出来方便后续排查:
Preparing to deploy application...DONE
Uploading bundle for application: 337344...DONE
Deploying bundle: 1355635 for application: 337344 ...
Waiting for task: 523919702
building: Processing bundle: 1355635
building: Building image: 1368415
error: Building package: rlang
针对这个问题,我整理了几个实用的解决步骤,你可以逐一尝试:
更新本地rlang包:shinyapps.io构建镜像时,通常需要匹配兼容的包版本,如果你本地的rlang版本偏旧,很可能导致云端构建失败。在RStudio里运行以下命令更新,重启R后再尝试部署:
install.packages("rlang")用renv锁定依赖版本:本地和云端的包版本差异是这类问题的常见诱因,你可以用
renv来统一环境:- 先安装renv:
install.packages("renv") - 在项目根目录执行
renv::init()初始化环境 - 运行
renv::snapshot()保存当前所有依赖的版本 - 重新部署应用,此时shinyapps.io会完全按照你本地的依赖版本构建镜像
- 先安装renv:
手动指定rlang兼容版本:如果更新到最新版还是失败,可以试试指定一个你本地能正常运行的rlang版本。先通过
packageVersion("rlang")查看本地版本号,然后执行:remotes::install_version("rlang", version = "你的本地版本号")完成后再重新部署应用。
清理部署缓存:旧的缓存文件可能会干扰云端构建流程。在RStudio的部署面板中,点击应用右侧的
Settings,进入Advanced选项卡,勾选Clear cache before deployment,再重新发起部署。先验证本地应用的合法性:在本地先跑一遍
devtools::build()和devtools::check(),如果本地就有报错,先把本地的问题解决完再部署,避免把问题带到云端。
内容的提问来源于stack exchange,提问作者ivan lorenzo

