Port already in use

Metro bundler는 8081 port에서 구동된다. Port 8081에서 구동중인 프로세스를 죽이는 방법


Linux

sudo lsof -i :8081
kill -9 <PID>

Port parameter를 이용하여 다른 port를 사용할 수 있다.

npx react-native start --port=8088


NPM locking error

npm WARN locking Error: EACCES를 마주하면 다음을 실행하라

sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/local/lib/node_modules


Missing libraries for React

수동으로 React Native를 추가할때 관련 dependencies들이 모두 추가되었는지 확인해야한다.

Likning Libraries 참조.

CocoaPods를 사용한다면 Podfile에 subspecs를 등록했는지 확인해야한다.

pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'RCTText',
    'RCTImage',
    'RCTNetwork',
    'RCTWebSocket',
]


그 다음 pod install를 실행하고 Pods 디렉토리가 만들어졌는지 확인해야한다. CocoaPods가 .xcworkpsace를 생성하여 관련 dependencies드를 사용할 수 있게 알려줄 것이다.


No transports available

React Native는 WebSockets를 위해 polyfill을 사용한다. Import React from ‘react’에 포함되는데 다른 WebSockets를 써야하는 경우(ex Firebase) react-native 뒤에 넣어라.


import React from 'react';
import Firebase from 'firebase';


Shell Command Unresponsive Exception

Execution failed for task ':app:installDebug'.
com.android.builder.testing.api.DeviceException: com.android.ddmlib.ShellCommandUnresponsiveException


이런 에러가 보이면 android/build.gradle에 있는 Gradle 버전을 1.2.3으로 낮추어라.


react-native init hangs

Npx react-native init에 문제가 있으면 verbose mode로 실행하여라.

npx react-native init --verbose


Unable to start react-native package manager (on Linux)

Case 1: Error “code”:”ENOSPC”,”errno”:”ENOSPC”

Linux에서 watchman이 inotify 폴더 개수를 모니터링하는 부분에서 생기는 문제이다. 다음 명령어를 실행하라.

echo fs.inotify.max_user_watches=582222 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p


출처

https://reactnative.dev/docs/troubleshooting