🚨 문제 상황
React Native/Expo 프로젝트에서 Android 빌드 중 다음과 같은 심각한 오류가 발생했습니다:
- CMake 설정 오류
- 특정 라이브러리의 JNI(Java Native Interface) 디렉토리 누락
- 빌드 시스템의 구성 파일 손상
🔍 주요 오류 메시지
CMake Error at .../Android-autolinking.cmake:9 (add_subdirectory):
add_subdirectory given source
"/.../node_modules/@react-native-async-storage/async-storage/android/build/generated/source/codegen/jni/"
which is not an existing directory.
🛠️ 해결 과정 및 각 단계별 의미
1. 노드 모듈 완전 초기화
rm -rf node_modules
rm package-lock.json
npm cache clean --force
npm install
- 목적: 프로젝트의 의존성을 완전히 새로 설치
- 효과:
- 손상되거나 불완전한 패키지 제거
- 깨끗한 상태의 의존성 트리 재구성
2. Watchman 캐시 초기화
watchman watch-del-all
- 목적: 파일 변경 감지 시스템 초기화
- 효과:
- 캐시된 파일 시스템 상태 초기화
- 빌드 프로세스의 신뢰성 향상
3. React Native CLI 설치
npm install -D @react-native-community/cli
- 목적: React Native 명령줄 도구 업데이트
- 효과:
- 최신 CLI 도구로 프로젝트 관리
- 호환성 문제 해결
4. Expo Prebuild
npx expo prebuild --clean
- 목적: 네이티브 프로젝트 파일 재생성
- 효과:
- Android 및 iOS 빌드 디렉토리 완전 초기화
- 네이티브 설정 파일 재구성
5. Gradle 클린
cd android
./gradlew clean
cd ..
- 목적: Android 빌드 시스템 캐시 초기화
- 효과:
- 이전 빌드 아티팩트 제거
- Gradle 빌드 환경 초기화
🎯 최종 해결 결과
BUILD SUCCESSFUL in 37s
59 actionable tasks: 30 executed, 29 up-to-date
💡 주요 학습 포인트
- React Native/Expo 프로젝트에서 빌드 문제 해결은 단계적 접근 필요
- 의존성, 캐시, 네이티브 설정 초기화가 핵심
- 오류 메시지 꼼꼼히 읽고 분석하는 것이 중요
⚠️ 주의사항
- 모든 단계를 순차적으로 진행
- 인터넷 연결 안정적으로 유지
- 프로젝트 백업 권장
🔗 추가 리소스