Burt.K

코코아를 좋아하는 프로그래머입니다 ;)

NDK 라이브러리 배포 시 java.lang.UnsatisfiedLinkError 에 대해서.

한 프로젝트에서 두 개 이상의 ndk 라이브러리를 사용한다고 가정해 봅시다. 각 라이브러리는 아래와 같이 ABI를 지원한다면 앱을 빌드하고 실행했을 때 잘 실행될까요?

NDK-Library A

NDK-Library B

즉, NDK-Library B는 모든 ABI를 지원하고 NDK-Library A는 armeabi만 지원합니다. 이럴 경우 앱을 빌드하고 실행하면 NDK-Library A를 찾을 수 없다고 예외를 뿌리며 죽습니다. 즉, java.lang.UnsatisfiedLinkError 가 발생합니다.

이것을 해결하는 방법은 두 라이브러리가 지원 ABI를 동일하게 맞춰주는 수 밖에 없습니다. 즉, 이 경우에는 NDK-Library B를 수정해서 armeabi만 빌드해서 배포해야 합니다.  코드가 있을 경우에는 상관이 없지만 코드가 없을 경우에는 어떻게 해야할지…?

 

← AndroidChannel
안드로이드 커스텀뷰 프로그래밍 – 커스텀뷰의 크기 정하기 →