< react-native init 으로 app 생성 후, react-native run-android 명령시 에러 발생에 대한 해결 시도 >
1. 안드로이드 스튜디오 기본 환경 체크
- jdk 설치하니 에러메세지 바뀜.
2. 현재 에러 메세지(에뮬레이터에 apk 정상 설치하기 위한 과정)
* 에러 메세지 2종
1) 에러 메세지 1
A problem occurred configuring project ':app'.
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
2) 에러 메세지 2
Could not determine java version from '11'
* 1~2번 에러에 대한 trouble shooting 시도
1) JAVA_HOME 환경변수 설정하고 java -version, javac -vesion 정상 출력 확인
http://plzhoney.tistory.com/4
- 기타 : ANDROID_HOME 환경변수 설정
windows의 경우 내컴퓨터 - 속성 - 고급 시스템설정 - 환경변수 로 들어가서 시스템 변수-새로만들기 --> '변수이름 - ANDROID_HOME 변수 값 'sdk의 경로' 를 입력
* sdk 경로 예시
C:\Users\__사용자명__\AppData\Local\Android\Sdk
2) local.properties 생성 (3번 Gradle sync 진행시 이 경로를 참조하게 됨.)
Go to your React native Project-Android --> Create a file local.properties(확장자가 properties인 파일) --> Open the file & paste your Android SDK path like below
in Windows sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
in macOS sdk.dir = /Users/USERNAME/Library/Android/sdk
in linux sdk.dir = /home/USERNAME/Android/Sdk
Replace USERNAME with your user name
[ my case ]
C:\Users\<사용자명>\AppData\Local\Android\Sdk
Now, Run the react-native run-android in your terminal.
3) 안드로이드 스튜디오에서 import project를 통한 Gradle sync
If any one came across this problem. (Could not determine java version from '10' or '11')
you don't have to downgrade java version
Just import the android folder into Android studio it will ask you to update gradle click update and when it finish everything is working fine
It worked for many for so many projects
Open Android Studio and click on ( file-new-Import project ) and select android folder in your react-native app. By using this way I built my react-native project using Java 10 too
--> sync 진행 도중 에러 발생시는 표시되는 링크 클릭해서 여러가지 모듈 설치(install 링크 클릭 2회)
; 이 작업은 SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
이 오류 나오면 필요한 필수 작업임.
4) 1)~3) 조치후에도 해결 안되면 jdk11 을 jdk8로 다운그레이드
--> 다운그레이드 후 자바 경로설정 2종 세팅하기!
--> 에러 메세지 없어졌고, 안드로이드 에뮬레이터에 apk 정상 설치되었음.
3. 현재 에러 메세지(에뮬레이터에 apk 정상 설치 된 후)
* 안드로이드 에뮬레이터 설치된 app을 실행하니 아래 오류 발생함.
pixel launcher has stopped.
--> 이 오류는 에뮬레이터 자체의 문제가 아니라 픽셀 런쳐 sw의 문제인 것으로 보임.
1) 시도 1 : virtual device의 graphic 설정을 sw로 변경함. --> 해결은 된다고 하나, 내 경우는 device 무한 재부팅 발생으로 사용 불가
2) 시도 2 : 고런쳐 apk 를 다운로드 받아서 설치하고, 설치 후 '항상 변경된 런쳐 사용' 으로 체크.
https://www.appsapk.com/go-launcher-ex/
--> 픽셀 런쳐 스탑 오류는 해결됨.
4. 현재 에러 메세지
(app 설정 문제인 듯, RN버젼이 업그레이드 되면서 발생하는 오류임)
error: bundling failed: Error: Unable to resolve module `@babel/runtime/helpers/interopRequireDefault` from : Module `@babel/runtime/helpers/interopRequireDefault` does not exist in the Haste module map
1) node modules 삭제, 재설치, 캐시 비우기 등 (효과는 없었음)
node_modules 삭제, npm install, npm start -- --reset-cache
실행하였으나 해결 안 됨.
2) babel/runtime 재설치
https://github.com/jquense/yup/issues/216
npm add @babel/runtime
(설치시 react-native가 삭제되는 경우 발생하면, npm install 로 재설치)
--> 설치 후 반드시 cmd창 모두 닫았다 재실행.
--> 모두 해결되고 app 정상 가동 됨.
* 이후에도 앱 가동시 가끔 babel 관련 오류 메세지 발생하기도 함 --> babel/runtime 재설치로 대부분 해결됨.