검색
검색
공개 노트 검색
회원가입로그인

안드로이드 빌드 후 크래시. java.lang.RuntimeException: Unable to load script. Make sure you're either running a Metro server (index android bundle) 리액트 네이티브 안드로이드 문제 해결

안드로이드 index.android.bundle 문제

안드로이드에서 빌드해서 릴리즈 버전을 내부 테스트 버전으로 올렸는데 다음과 같은 에러가 났다.

java.lang.RuntimeException: Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that your bundle 'index.android.bundle' is packaged correctly for release.

이게 도대체 뭔소리인지 하다가 찾아보니 빌드에 index.android.bundle이 포함되지 않아 생기는 문제였다. 다음과 같이 해결할 수 있다.

  1. android/app/src/main/assets 폴더가 없으면 생성해 준다.

  2. android 폴더에서 ./gradlew clean 실행

  3. index 파일을 생성해 준다.

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

안드로이드를 빌드했을 때 버전이 예전 버전으로 빌드되는 문제도 index 파일 생성으로 해결된다. (이걸 몰라서 하나씩 version behind 되었었다...)

안드로이드 Duplicate resources

빌드 할 때 리소스가 있는데 다시 생성하려고 할 때 생기는 문제이다. 보통 drawable과 raw폴더가 중복되어 생기는 문제가 많은것 같다. (./gradlew clean 도 안먹혔다.) 다음과 같이 해결했다.

rm -rf ./android/app/src/main/res/drawable-\*

윈도우라서 해당 커맨드가 적용되지는 않아 해당 폴더에서 draw- 로 시작되는 폴더를 지워줬다.

rm -rf ./android/app/src/main/res/raw

휴 요즘 오랜만에 다시 시작했는데 빌드가 잘 안된다 ㅠㅠ

역시 개발은 세팅이 반인가...

조회수 : 1217
공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기