버그 및 디버그¶
에러 처리¶
만일 다음과 같은 같은 에러가 발생하면
Unable to load script from assets index.android.bundle on windows
구글링 해보니 다음과 같이 하면 된다고 해서 실행했더니 성공했다.
1. (프로젝트 폴더에서) mkdir android/app/src/main/assets
2. 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
3. react-native run-android
그리고 코드를 수정하고 다시 적용할 때에 Reload가 안되는 에러가 발생할 수 있다. 이때는 휴대폰을 흔들어서 Dev Settings에 가서 Debug server host & port 부분에 다음과 같이 컴퓨터 아이피와 포트 번호를 설정하면 된다.
192.168.0.142:8081
물론 아이피는 컴퓨터 마다 다를 수 있고 포트는 Metro Bundler 창에 나와 있는 번호를 이용하면 된다.
이전버전 에러¶
이때 버전이 맞지 않아서 에러가 발생할 수 있습니다. 구글링을 참조하여 버전 0.56.0일 때는 다음과 같이 버전을 변경해주면 됩니다.
react-native init FirstProject
cd FirstProject
react-native run-android
npm uninstall react-native
npm install --save react-native@0.55.4
react-native run-android
npm install --save babel-core@latest babel-loader@latest
npm uninstall --save babel-preset-react-native
npm install --save babel-preset-react-native@4.0.0
react-native run-android
다음은 성공한 package.json 파일 내용입니다. 아래 내용 중 "dependencies"
, "devDependencies"
부분을 복사해서 덮어쓰고 다시 설치 npm install
을 해도 됩니다.
{
"name": "FirstProject",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-preset-react-native": "^4.0.0",
"react": "16.4.1",
"react-native": "^0.55.4"
},
"devDependencies": {
"babel-jest": "23.4.2",
"jest": "23.5.0",
"react-test-renderer": "16.4.1"
},
"jest": {
"preset": "react-native"
}
}
실행중 에러¶
실행하던 중에 다음과 같은 오류가 나오면
:app:incrementalDebugJavaCompilationSafeguard FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:incrementalDebugJavaCompilationSafeguard'.
> java.io.IOException: Could not delete path 'C:\Users\dyoon\SVN_Lecture\ReactNative\work\LearningReactNative\Countly\android\app\build\intermediates\classes\debug'.
다음과 같이 해줍니다.
> npm start -- --reset-cache
그리고 다음과 같은 메시지가 뜨면
Loading dependency graph, done.
Ctrl + C
를 눌러 멈추고 다시 실행을 합니다.
> react-native run-android
build error¶
빌드 중에
AAPT: error: resource android:attr/ttcIndex not found.
error: failed linking references
에러가 발생할 때는 프로젝트 폴더의 android/app/build.gradle
파일의 compileSdkVersion = 28
로 설정해 본다. 또는 android/app/build.gradle
파일의 buildToolsVersion '28.0.3'
로 설정해 본다. 그리고 휴대폰 디버깅할 때 device offline
이 발생하면 휴대폰을 다시 리부팅하고 연결해본다.
또는 안드로이드 스튜디오에서 프로젝트 폴더의 android 를 열고 ProjectStructure의 Properites의 compileSdkVersion=API 27: Android 8.1로 했고 Build Tool Version: 28.0.3으로 처리했습니다.