R 和x27中规定的S4出口;名称空间';但未在包中定义

R 和x27中规定的S4出口;名称空间';但未在包中定义,r,r-package,R,R Package,我刚刚完成了一个R软件包的一些小更新,我已经在CRAN上使用了几年(有一段时间没有更新了)。我的包通过了本地机器和winbuilder上的检查,但它刚刚从CRAN返回消息 checking whether package 'riverdist' can be installed ... WARNING Found the following significant warnings: Warning: S4 exports specified in 'NAMESPACE' but not d

我刚刚完成了一个R软件包的一些小更新,我已经在CRAN上使用了几年(有一段时间没有更新了)。我的包通过了本地机器和winbuilder上的检查,但它刚刚从CRAN返回消息

checking whether package 'riverdist' can be installed ... WARNING
Found the following significant warnings:
  Warning: S4 exports specified in 'NAMESPACE' but not defined in package 'riverdist'
我使用roxygen2来构建我的包名称空间,并且没有任何已知的S4导出

这可能与R版本4.0.0中的更改有关


如果有人遇到这个错误,我很想听听你是如何解决的。谢谢

已解决。roxygen2的
@exportClass
添加到命名空间
exportClasses()
,该命名空间用于S4类。S3类不需要导出,只需要导出构造函数和方法函数,这是使用
@export
完成的。在我的例子中,删除所有
@exportClass
命令解决了这个问题,因为我的包只定义了S3类。因此,在诊断S4出口时,警告信息确实是正确的。在昨天的帮助下找到了答案

在我的包的情况下,问题只存在于一个包中,其他9个也触发警告的包依赖于这个包


该警告仅在r-devel(未来的r 4.1.0)下触发。

我从rdevel收到此消息

“这是R-devel的新入住登记。新闻说:

R CMD check etc现在在包导出不存在的S4类或方法时发出警告,也在不存在“方法”的情况下发出警告

在您的例子中,名称空间包含

导出类(分类)

出口等级(性腺成熟)

导出类(morphMat)

但是您的包没有定义这些S4类

您似乎指示roxygen2使用 @exportClass标记手动而不是仅@export。只需删除这些标记即可 源文件中的@exportClass标记错误,并重新生成 命名空间

致以最良好的祝愿

    Sebastian Meyer"

因此,我遇到了完全相同的问题,并且没有任何
@exportClass
@exportClass
的实例,因为我在本软件包更新中专门处理了它们。因此,这似乎不是答案。