You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

发布Shiny应用时遭遇Unhandled Exception错误求助

问题根源与解决方案

你遇到的错误和警告核心原因很明确:shiny 1.0.5.9000是Shiny的开发预览版本,这个版本并没有正式发布到CRAN上。rsconnect默认会从CRAN拉取包依赖,但CRAN上根本没有这个带.9000后缀的开发版,所以才会出现"无法满足包依赖"的错误,同时警告也提示它尝试用CRAN最新稳定版替代,但版本不匹配导致部署失败。

下面是两种可行的解决办法,你可以根据需求选择:

办法一:切换到CRAN稳定版Shiny(推荐,适合大多数场景)

如果不是必须使用开发版的功能,切换到稳定版是最省心的方案:

  • 先卸载本地的开发版Shiny:
    remove.packages("shiny")
    
  • 安装CRAN上的稳定版:
    install.packages("shiny")
    
  • 再次运行部署命令:
    library(rsconnect)
    deployApp(appDir = "yourwd")  # 直接指定目录,不用setwd更稳妥
    

办法二:强制部署时使用GitHub开发版Shiny

如果你确实需要这个开发版的特定功能,需要告诉rsconnect从GitHub拉取对应版本:

  1. 在你的Shiny应用目录下创建一个DESCRIPTION文件,添加以下内容(如果已经有DESCRIPTION,就补充对应的字段):
    Imports:
      shiny (>= 1.0.5.9000)
    Remotes:
      rstudio/shiny
    
  2. 然后运行部署命令:
    library(rsconnect)
    deployApp(appDir = "yourwd")
    

或者你也可以直接用configureApp指定依赖来源:

rsconnect::configureApp(
  appDir = "yourwd",
  appDependencies = list(
    shiny = list(source = "github", repo = "rstudio/shiny")
  )
)
deployApp(appDir = "yourwd")

额外提示

部署Shiny应用时,尽量保证本地使用的包版本和服务器端能获取到的版本一致,这样可以避免很多依赖相关的问题。另外,setwd()不是必须的,直接在deployApp()里用appDir参数指定应用目录会更清晰,也不容易出错。

内容的提问来源于stack exchange,提问作者Henk Straten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:58:37