ReactNative: onHost 생명주기 메소드가 없을 때
(글 작성한 시점의 최신 ReactNative ver: 0.40)
기존 Android 네이티브 앱에 ReactNative를 이식하기 위해서 ReactNative 공식 doc에서 가이드해주는 Integration With Existing Apps를 따라하고 있었다.
1. 이슈 내용
하라는대로 제대로 잘 따라한 것 같은데, 일단 첫번째 문제는 doc에서 사용하라는 onHost... 로 시작하는 생명주기 메소드들을 찾을 수가 없었다. (아래 스크린샷의 메소드)
일단 뭐 대충 보니 메소드 이름과 파라미터들은 달랐지만 onPause(), onResume(), onDestroy() 라는 메소드들이 있어서 '뭐 아직 문서가 업데이트 되지 않았나보다' 하고 대수롭지 않게 넘기고 onPause(), onResume(), onDestroy() 메소드들을 사용했다.
그러고나서 빌드하니 발생하는 RuntimeException:
IllegalAccessError??2. 이슈 원인
일단 원인은 프로젝트 루트의 build.gradle 에서 maven 코드 블럭 추가시 잘못된 경로를 추가한 문제였다.
doc에 나오는 정확히 $rootDir/../node_modules/react-native/android 이 부분이다.
일반적으로 이 doc 문서를 보면서 차근차근 따라했다면, 프로젝트 루트안에 node_modules 폴더가 만들어졌으므로 node_modules 폴더가 저 경로 안에 위치할리가 없다.
3. 해결방법
댓글
댓글 쓰기