오류

한인찬·2023년 2월 6일

dlopen failed : library xxxx.so not find
so 파일을 찾을 수 없음.
https://gdlseed.tistory.com/81

근데 핸드폰에서는 됨.
에뮬레이터에서는 안됨

jniLibs안에 arm64-v8a가 있음.
핸드폰은 arm을 지원함.
에뮬레이터는 x86을 지원함. 그래서 문제인 듯 함.

그래서 폴더이름을 x86으로도 바꿔봤음.
ndk addfiles도 x86 , x86_64 둘다 해봤던거 같음.
is for EM_AARCH64 (183) instead of EM_X86_64 (62) 오류가 뜸.
아마 원래 폴더가 arm64-v8a용으로 만들어져있어서
단순히 폴더 이름만 바꾼다고 x86으로 빌드되는게 아닌거 같음.
오류 해결 못함.

내 컴터는 인텔이라 x86으로 에뮬레이터를 만드는 걸 추천함.
근데 이건 선택할 수 있는 것 같음.
https://webnautes.tistory.com/1141
그래서 arm용으로 set images를 바꿨음.
근데 작동이 안됐음. 알고보니 디스크 용량 부족했었음.
근데 파일을 삭제해서 arm용으로 바꿨을때 되는지 확인이 안됐음

디스크 용량을 정리하고
안드로이드 API 30 에뮬레이터의 x86 에서도 arm을 지원한다고 함
https://devbible.tistory.com/477
그래서 x86_64로 set images를 빌드하고 돌렸음.
ndk addfiles는 "arm64-v8a" 만 했음.
돌아가긴 함. 근데 라이브채팅으로 들어가면 에러가 나옴.

일단 1.arm용으로 set images를 바꿔서 한 번 해보고
2.x86_64로 set images를 빌드했을때 나오는 오류를 고치는게 나을듯

참고로 핸드폰에서 빌드했을때 ndk addfiles는 4가지 모두 추가했는데도 됐었음.

그리고 이건 디스크용량을 정리할 때 시스템 이미지 삭제방법임.
https://jootc.com/p/201908293092

log를 통해 알아본 오류
PANIC: Avd's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host.

https://domdom.tistory.com/542

정확히 어떤 이유에서 위와 같은 오류가 나왔는지 상세 로그를 보고 분석해볼 필요가 있었습니다.

그러기 위해서 Android Studio Log를 조회해봅시다.
Help 메뉴 하위에 Show Log in Explorer 라는 메뉴가 있으면 눌러봅시다.

아니면 그냥 일반적으로 Android Studio 로그 파일이 위치해 있는 폴더 경로에 접근해보아도 됩니다.

ex) C:\Users\domdomi\AppData\Local\Google\AndroidStudio\log\idea.log
Android Studio에서 에뮬레이터를 동작시킬 때 사용하는 프로그램이 QEMU2 emulator 라는 건데, 현재 환경에서는 arm64 CPU 종류를 지원하지 않는다는 얘기인 것 같습니다.

오류해결
때문에 오류해결방법을 총 정리해보면, 저의 경우 AVD 생성 시에 API 버전을 28 이상으로 한 상태에서 arm64 Type으로 emulator를 생성하였기 때문에 API 버전을 낮추서 생성해주었더니 정상적으로 emulator 가 가동이 되는 것을 확인할 수 있었습니다.

profile
개발자

0개의 댓글