React Native Invariant Violationがでた時の対処方法


Published on June 09, 2020

最近のReact Nativeは基本的にはautolink機能によって、packageをインストールしてpod installすればライブラリは自動的にlinkされて使用できるはずです。

しかし、新たにライブラリを登録した際に、Invariant Violation: Native module cannot be null.というエラー画面が出ることがあります。

解消方法をざっと書いていきます。上から順に試していく感じです。

invariant-violation

pod install


たまにある、packageの追加だけ実施してPodの更新を忘れるパターン。

terminal
$ npx pod-install


pod install --repo-update

これもたまにある、Podの更新が必要なパターン。


terminal
$ cd ios && pod install --repo-update


Podfile.lock & Podsフォルダ削除後にpod install


上記でも解決しない時に実施する、Pod関連をクリーンにする方法

terminal
$ cd ios
$ rm -rf Pods
$ rm Podfile.lock
$ pod install


node_modulesフォルダ&yarn.lockの削除


それでも解決しないときに、packageを消してクリーンな環境からビルドする方法

terminal
$ rm -rf node_modules
$ rm yarn.lock
$ yarn install
$ cd ios
$ rm -rf Pods
$ rm Podfile.lock
$ npx pod-install
$ npx react-native run-ios

npmの場合は、yarn.lockの代わりにpackage-lock.jsonを削除しましょう。


iOS Simulatorのアプリを削除してからビルド


上記のどれをやっても解決しない時に・・・・

意外な盲点で、iOS Simulatorにインストールしたアプリを一度削除しないとエラーが消えないケースがあります。

私はこれで1日潰れた・・・。

一度SimulatorのHome画面からアプリを削除して、ビルドしてみましょう。


If you like it, share it!