React Native 프로젝트를 빌드하여 테스트하려 할 때 다음 에러가 나타나면서 빌드에 실패하는 경우가 있습니다.
* Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 1m 40s error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup. Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081 Note: C:\project\my-project\android\app\src\debug\java\com\myproject\ReactNativeFlipper.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. Unable to install C:\project\my-project\android\app\build\outputs\apk\debug\app-debug.apk com.android.ddmlib.InstallException: Unknown failure: Exception occurred while executing 'install': java.lang.IllegalArgumentException: Error: Failed to parse APK file: /data/local/tmp/app-debug.apk: Failed to parse /data/local/tmp/app-debug.apk at com.android.server.pm.PackageManagerShellCommand.setParamsSize(PackageManagerShellCommand.java:581) at com.android.server.pm.PackageManagerShellCommand.doRunInstall(PackageManagerShellCommand.java:1337) at com.android.server.pm.PackageManagerShellCommand.runInstall(PackageManagerShellCommand.java:1303) at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:193) at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97) at android.os.ShellCommand.exec(ShellCommand.java:38) at com.android.server.pm.PackageManagerService.onShellCommand(PackageManager Service.java:24612) at android.os.Binder.shellCommand(Binder.java:950) at android.os.Binder.onTransact(Binder.java:834) at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4818) at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:8506) at android.os.Binder.execTransactInternal(Binder.java:1184) at android.os.Binder.execTransact(Binder.java:1143) Caused by: java.io.FileNotFoundException: AndroidManifest.xml at android.content.res.ApkAssets.nativeOpenXml(Native Method) at android.content.res.ApkAssets.openXml(ApkAssets.java:379) at android.content.pm.parsing.ApkLiteParseUtils.parseApkLiteInner(ApkLiteParseUtils.java:302) at android.content.pm.parsing.ApkLiteParseUtils.parseApkLite(ApkLiteParseUtils.java:283) at com.android.server.pm.PackageManagerShellCommand.setParamsSize(PackageManagerShellCommand.java:575) ... 12 more {{중략}} FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:installDebug'. > java.util.concurrent.ExecutionException: com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Unknown failure: Exception occurred while executing 'install': java.lang.IllegalArgumentException: Error: Failed to parse APK file: /data/local/tmp/app-debug.apk: Failed to parse /data/local/tmp/app-debug.apk at com.android.server.pm.PackageManagerShellCommand.setParamsSize(PackageManagerShellCommand.java:581) at com.android.server.pm.PackageManagerShellCommand.doRunInstall(PackageManagerShellCommand.java:1337) at com.android.server.pm.PackageManagerShellCommand.runInstall(PackageManagerShellCommand.java:1303) at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:193) at android.os.Binder.shellCommand(Binder.java:950) at android.os.Binder.onTransact(Binder.java:834) at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4818) at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:8506) at android.os.Binder.execTransactInternal(Binder.java:1184) at android.os.Binder.execTransact(Binder.java:1143) Caused by: java.io.FileNotFoundException: AndroidManifest.xml at android.content.res.ApkAssets.nativeOpenXml(Native Method) at android.content.res.ApkAssets.openXml(ApkAssets.java:379) at android.content.pm.parsing.ApkLiteParseUtils.parseApkLiteInner(ApkLiteParseUtils.java:302) at android.content.pm.parsing.ApkLiteParseUtils.parseApkLite(ApkLiteParseUtils.java:283) at com.android.server.pm.PackageManagerShellCommand.setParamsSize(PackageManagerShellCommand.java:575) ... 12 more
내용이 상당히 긴 것을 확인할 수 있는데 여기서 하단부의 ‘What went wrong’ 부분을 보시면 주요 원인을 파악할 수 있습니다. 여기서는 아래 메시지가 주요 원인이 되겠습니다.
Execution failed for task ':app:installDebug'. > java.util.concurrent.ExecutionException: com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Unknown failure: Exception occurred while executing 'install': java.lang.IllegalArgumentException: Error: Failed to parse APK file:
대략 디버깅용 APK 파일을 설치하는 도중 데이터 파싱 에러가 발생하여 설치에 실패했다는 내용인데, 이에 대한 주요 해결책은 다음과 같습니다.
먼저 이 과정을 하기 전, React Native를 위한 개발 환경 설정이 모두 완료되었는지 확인해주셔야 합니다.
React Native의 개발 환경 설정은 아래 문서에서 확인해보실 수 있습니다.
https://reactnative.dev/docs/environment-setup
간혹 SDK 버전이 문서와 다른 버전이 설치되어 있을 수 있는데, 문서에 나와있는 SDK 버전과 AVD의 API 버전을 문서와 동일하게 설정하는 것을 권장합니다.
위 설정을 모두 마치셨다면 이제 미리 빌드된 APK파일을 깨끗이 삭제해주어야 합니다. 디버그와 릴리스용 APK 중 현재 발생한 환경에 맞는 APK파일을 삭제해주면 됩니다.
일반적으로는 다음 경로에 위치합니다:
{프로젝트 폴더}/app/build/outputs/apk/release {프로젝트 폴더}/app/build/outputs/apk/debug
위 경로의 파일을 모두 삭제한 뒤 현재 편집중인 에디터(IDE), 콘솔, 가상 기기(AVD)를 모두 다시 시작합니다.
이제 다시 빌드를 시도하면 대부분 문제가 해결 될 것입니다.
INSTALL_FAILED_INSUFFICIENT_STORAGE 문제 안드로이드 스튜디오에서 에뮬레이터를 실행하고 개발중인 애플리케이션을 실행하려 하면 로그 창에 아래와 같이 표시되면서…
리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…
JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…
NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…
언제부턴가 윈도우 11을 처음 설치할 때 마이크로소프트(Microsoft) 계정 로그인을 강제로 요구하게 되었습니다. 물론 마이크로소프트 계정이…