Native module cannot be null / N

2019-09-26  本文已影响0人  lwhldy

错误如图类似


NativeEventEmitter.png
困扰了好久的问题,各种google,度娘都写的是手动集成RN出现该问题的解决方案,由于楼主是自动集成的库,所有Native库都是自动link的,所以网上的那些解决方案对我都无效。
但是还是贴一下手动集成RN报该错误的解决方案,

手动 linking

步骤1

如果库具有native的代码,则其文件夹中必须存在.xcodeproj文件。 将此文件拖到Xcode上的项目中(通常位于Xcode上的Libraries组下);

步骤1

步骤 2

单击您的主项目文件(代表.xcodeproj的文件)选择Build Phases并将静态库从您要导入的Library中的Products文件夹拖到Link Binary With Libraries

步骤 2

步骤 3

并非每个图书馆都需要此步骤,您需要考虑的是:

我是否需要在编译时知道库的内容?

这意味着,您是在本机端还是仅在JavaScript中使用此库? 如果你只是在JavaScript中使用它,那么你不需要此步骤!

如果你确实需要从native调用它,那么我们需要知道库的头文件。 要实现这一点,您必须转到项目的文件,选择“Build Settings”并搜索“Header Search Paths”。 在那里你应该包括你的图书馆的路径。 (此文档过去建议使用recursive,但不再推荐使用它,因为它可能导致细微的构建失败,尤其是对于CocoaPods。)

步骤 3

如果你是自动集成RN, 你需要在项目根目录 ios文件夹内Podfile(这是iOS第三库管理文件,不再赘述,感兴趣自行度娘)文件添加类似如下的第三方库路径,这是解决思路,具体问题具体分析,缺少什么文件就在node_modules文件内找,参照如下填写,一般都能解决问题。

pod 'React-RCTPushNotification', :path => '../node_modules/react-native/Libraries/PushNotificationIOS'

上一篇下一篇

猜你喜欢

热点阅读