类'RCTViewManager'XCode的重复接口定义

Posted

技术标签:

【中文标题】类\'RCTViewManager\'XCode的重复接口定义【英文标题】:Duplicate interface definition for class 'RCTViewManager' XCode类'RCTViewManager'XCode的重复接口定义 【发布时间】:2017-02-21 01:17:02 【问题描述】:

我按照他们的安装说明将 AirBnb 的 React Native Maps 添加到我的项目中:

https://github.com/airbnb/react-native-maps/blob/master/docs/installation.md

现在我在尝试使用 Xcode 构建项目时遇到这些编译错误。如果我在终端中使用“react-native run-ios”,应用程序仍然可以运行,但我想解决这个问题。我尝试了以下链接中提出的解决方案,但没有解决任何问题:

https://github.com/airbnb/react-native-maps/issues/1017

最初对于不同的 React Native 类实际上存在多个此类错误,但是当我将相关导入从引号语法替换为 语法时,这些错误已得到修复。

例如,如果错误是针对“RCTView”,我会将#import "RCTView.h" 替换为#import <React/RCTView.h>

但是,这并没有解决这个错误,这是唯一剩下的一个。

我在下面附上了相关的截图:

非常感谢任何能解决这个问题的人。

【问题讨论】:

【参考方案1】:

我终于解决了这个问题!我更改了 podfile,以便注释掉使用的 pod 'React'... 行并取消注释另一行,然后在此处遵循解决方案:

https://github.com/airbnb/react-native-maps/issues/789

【讨论】:

您能否将您的更新解决方案添加到答案中?这会很有帮助。【参考方案2】:

ios/Pods/Headers/Private/React-Core/React/ 中的所有文件都应该是 Symbolic Links 到节点模块 React 文件夹。

所以ios/Pods/Headers/Private/React-Core/React/RCTViewManager.h 的文件应该是指向../../../../../../node_modules/react-native/React/Views/RCTViewManager.h 的符号链接。

对该目录中的所有文件执行此操作,您将不会出现Duplicate interface definition 错误。


就我而言,我没有符号链接,而是将整个文件复制到 Pod 中。这导致了接口声明的两倍。

我知道这是一个非常古老的问题,但我最近解决了同样的问题。也许它也可以帮助其他人。

【讨论】:

以上是关于类'RCTViewManager'XCode的重复接口定义的主要内容,如果未能解决你的问题,请参考以下文章

私有类声明[重复]

为啥需要自定义异常类[重复]

Java:静态与内部类[重复]

类定义参数与普通类定义[重复]

Proguard 关于重复类定义的警告,但不打印出重复的类

其他类方法的类装饰器[重复]