모바일 개발하는 자바리안의 메모장

Flutter - java.lang.UnsatisfiedLinkError, couldn't find "libflutter.so" 해결 본문

Flutter

Flutter - java.lang.UnsatisfiedLinkError, couldn't find "libflutter.so" 해결

자바리안 2022. 6. 23. 15:20
반응형

디버깅 모드로 실행했을 땐 문제가 없던 앱이,

apk파일을 설치하여 실행할 경우 아래와 같은 Exception이 발생했다 : 

E FlutterLoader: java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: 
dalvik.system.PathClassLoader[DexPathList[[zip file “~~~~~~”],nativeLibraryDirectories=
[/~~~~~~-KZuzqfrkWcDtvMA1osi-jA==/lib/x86,
/~~~~~~-KZuzqfrkWcDtvMA1osi-jA==/base.apk!/lib/x86, /system/lib]]]
couldn’t find “libflutter.so”

게다가 특정 디바이스에서만 발생하는 문제였기에 이런저런 의심을 하다가 root cause와 solution을 찾았다.

 

해당 현상은 32비트 아키텍처를 사용하는 안드로이드 기기에서 발생하는 문제라고 하는데,,

 

확인해 본 결과, flutter 앱은 별도로 x86 Android에 대한 지원을 하지 않아,

x86 아키텍처 기준으로 라이브러리를 저장하는 경로가 존재하지 않아 특정 라이브러리 파일을 찾지 못해 발생하는 문제로 확인되었다. 

 

이런 경우, abiFilters로 ABI(Application Binary Interface)를 매뉴얼하게 제한하여 문제를 해결할 수 있습니다.

abiFilters 아래와 같이 app/build.gradle 파일의 ndk 속성 아래 추가해주면된다.

 

반응형
Comments