안드로이드 자바 java.lang.UnsatisfiedLinkError: dlopen failed: library "xxx.so" not found 해결 방법
2023. 8. 17. 10:59ㆍ개발/자바
반응형
모바일 하이브리드 앱 개발 중 빌드 후 휴대폰에서는 잘 동작하나, 안드로이드 에뮬레이터 상에서는 동작하지 않는 이슈가 발생하여 한참을 삽질한 결과 해결 방법을 찾아냈다.
에러 로그 전문
서드파티 so 파일을 찾을 수 없어 발생하는 에러였다.
개발중인 하이브리드 앱에는 서드파티 so 라이브러리가 내장되는데,
arm64-v8a, armeabi, arm64-v7a 이 3가지 ABI 형태의 so 파일이 사용되고 있다.
휴대폰의 ABI는 arm64-v7a 였으나, 안드로이드 에뮬레이터는 x86_64로 확인되었다.
구글링 끝에 ndk 빌드 시 ABI를 지정해줌으로써 에뮬레이터에서도 돌아가는 것을 확인할 수 있었다.
App 수준 build.gradle에 ndk 관련 옵션 추가 후 재빌드 및 실행
android {
defaultConfig{
minSdkVersion 23
targetSdkVersion 29
ndk {
abiFilters 'arm64-v8a', 'armeabi-v7a'
}
}
}
반응형