에러 내용
fontFamily "Helvetica" is not a system font and has not been loaded through Font.loadAsync.
- If you intended to use a system font, make sure you typed the name correctly and that it is supported by your device operating system.
- If this is a custom font, be sure to load it with Font.loadAsync.
해결 과정
클론 코딩을 하는 과정에서 해당 에러를 마주했지만 너무 바쁘게 달리고 있던 한 주였기 때문에
언제 누가 어떤 코드를 작성한 이후에 생긴 에러인지 찾기가 어려웠다.
에러가 발생한 정확한 시기도 모른 채 서비스에 직접적인 영향을 주지 않는 해당 에러는 애써 무시하고
콘솔 창을 빨간 글씨로 뒤덮은 채 꾸역꾸역 개발을 진행했었다.
원래 해당 주차에 튜터님께 SOS를 요청드렸었는데 답변을 달아주셨지만 이행해볼 겨를이 없어 미뤄놨었고,
일주일이 지난 지금 드디어 해당 방법을 시도해보았다.
[ 튜터님께서 말씀해주신 방법 ]
1. delete following lock files from the root directory
- yarn.lock
- package-lock.json
2. delete node_modules folder
3. run yarn
4. if you are using expo:
- run expo install
- run expo start -c to clear cache and start app
위 방법대로 해보았지만 에러는 여전히 건재했다...
[ 구글링으로 얻은 방법 ]
그래서 구글링을 시도해보았다.
대부분 튜터님께서 말씀해주신 방법을 추천하고 있었고 그중 다른 방법으로 해결이 되었다는 답변을 찾았는데...
`expo start -c` 를 스무 번 정도 돌렸더니 자동으로 짜잔 하고 해결이 되었다고...
그런 무슨 말도 안 되는 신화 같은 이야기뿐이었다...
(실제로 되려나 하고 10번 좀 안되게 시도해보다가 포기한 건 안 비밀)
[ 직접 찾아낸 방법 ]
결국 에러가 발생한 코드를 찾는 방법밖에 없는 것 같아
우선은 튜터님께 해당 방법을 시행해본 후기를 답변으로 달아두고
다시 돌려보며 도대체 해당 에러가 어디에서 발생한 건지 찾아 나섰다.
어제부터 눈이 빠져라 찾아본 결과 'react-native-url-preview' 라이브러리에서
import 했던 RNUrlPreview 태그를 주석 처리했더니 에러가 사라지는 것을 발견했다.
+
비슷한 에러로
fontFamily "Roboto_Medium" is not a system font and has not been loaded through Font.loadAsync.
위와 같은 에러도 종종 마주하는데 같이 개발하는 크루원들 사이에서 로보토의 악령이라고 불리는 중
아무튼 위 에러는 Button 태그를 사용할 때 발생한다는 것을 찾아냈고
Button 태그를 react-native에서 import 하면 그냥 에러가 나고
native-base에서 import 하고 Text 태그도 native-base에서 import 하면 위 에러가 났다.
따라서 굳이 Button을 사용하고 그 안에 Text까지 넣어야겠다면
Text 태그는 react-native에서 import 해주어야 해당 에러에서 비로소 벗어날 수 있다.
[ 아직 시도해보지 않은 방법 ]
위 방법으로 해결하고 나니 또 다른 새로운 방법을 찾았는데
내용만 봐서는 이 방법이 가장 근본적인 해결책인 것 같다.
오류가 나는 폰트를 실제로 오류가 나지 않도록 로드를 해주는 방식인데
지금은 서버에 문제가 있어서 시도해보지 못하지만 나중에 이 방법도 시도해봐야겠다.
해당 방법에 대한 링크👇👇👇
'React Native > Error 모음' 카테고리의 다른 글
[React-Native] #Error #createStackNavigator (0) | 2021.04.03 |
---|