반응형
해당 글에서는 React Native 환경에서 aab 파일을 빌드하는 과정에서 발생하는 오류의 해결방법에 대해 알아봅니다.
1) 문제점
💡 문제점
- 프로젝트를 .aab 파일로 빌드하는 과정 중에 아래와 같은 문제가 발생하였습니다.
- 해당 문제점은 Android 앱을 AAB(Android App Bundle) 파일로 빌드하는 과정에서 발생한 오류입니다.
- 구체적으로는 'lib/arm64' 디렉토리의 네이티브 아키텍처를 인식하지 못하는 문제가 발생했습니다.
Task :app:packageDevReleaseBundle FAILED
FAILURE: Build failed with an exception.
What went wrong: Execution failed for task ':app:packageDevReleaseBundle'.
A failure occurred while executing com.android.build.gradle.internal.tasks.PackageBundleTask$BundleToolWorkAction Unrecognized native architecture for directory 'lib/arm64'.
2) 해결 방법
1. 기존의 빌드된 파일들과의 충돌을 막기 위해 캐시를 지워줍니다.
# 안드로이드 폴더로 이동합니다.
$ cd android
# gradle 캐시를 삭제합니다
$ ./gradlew clean
2. android/app/build.gradle 파일 수정
💡 android/app/build.gradle 파일 수정
- 해당 파일에서는 앱이 지원할 CPU 아키텍처를 명시적으로 지정함으로써, 앞서 발생했던 'lib/arm64' 디렉터리의 네이티브 아키텍처를 인식하지 못하는 문제를 해결할 수 있습니다.
android {
defaultConfig {
ndk {
abiFilters = ['armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64']
}
}
}
💡 [참고] ABI(Application Binary Interface)는 애플리케이션의 머신 코드가 특정 시스템 환경에서 어떻게 동작해야 하는지를 정의하는 인터페이스입니다.
ABI | 설명 | 대상 기기 |
armeabi-v7a | 32비트 ARM 프로세서용 ABI. ARMv7 이상의 프로세서 지원 | 대부분의 구형 안드로이드 기기 |
arm64-v8a | 64비트 ARM 프로세서용 ABI. ARMv8 아키텍처 지원 | 최신 안드로이드 스마트폰, 태블릿 |
x86 | 32비트 x86 프로세서용 ABI | 인텔/AMD 프로세서 탑재 태블릿, 에뮬레이터 |
x86_64 | 64비트 x86 프로세서용 ABI | 64비트 인텔/AMD 프로세서 탑재 기기 |
3) 적용결과
💡 적용 결과
- 아래와 같이 AAB 확장자 파일 빌드가 완료되었고 파일을 확인하였습니다.
오늘도 감사합니다. 😀
반응형