[갤럭시S24] 앱이 휴대전화와 호환되지 않아서 설치되지 않았습니다. (해결편)

2024. 2. 5. 11:14IT/Android

반응형

지난번에는 갤럭시S24 에서 발생하는 앱이 호환되지 않아서 설치가 불가한 이슈 현상에 대해서 살펴보았습니다. 이번에는 그 해결책을 써보도록 하겠습니다.

 

여기서부터는 개발적인 영역이며, APK 강제 설치와 같은 내용은 없으니, 개발자가 아니신 분께는 별 도움이 되지 않을 수 있습니다.

 

원인 : 아래 라이언이 있는 부분을 보면 armeabi, armeabi-v7a 가 보입니다.

이 부분이 32bit AP를 위한 jniLibs 부분이며, 하드웨어나 센서등을 사용하기 위한 C or C++ 기반의 라이브러리와 자바/코틀린 간의 인터페이스를 위해 선언하는 부분입니다.

 

현재 갤럭시S24와 발생하는 호환성 이슈 대부분은 jniLibs 에 담긴 라이브러리가 "arm64-v8a", 즉 64bit와 호환되는 라이브러리가 없기 때문에 발생하는 경우입니다.

 

해결을 위해서는 다음과 같은 작업이 필요합니다.

jniLibs의 담긴 라이브러리 제공사에 64bit 용 라이브러리라 있는지 파악해보고 있다면, 다음의 폴더 구조를 만들어줍니다.

위 그림에서처럼 arm64-v8a 폴더를 생성 후 64bit 용 라이브러리를 넣어둡니다.

build.gradle(app 수준) 스크립트의 다음의 내용을 추가해줍니다.

라이언이 있는 위치처럼 abiFilters 부분에 'arm64-v8a' 를 추가해주고 빌드 및 테스트를 진행하면 됩니다.

 

단, 이 경우는 jniLibs 의 라이브러리가 64bit 용을 제공한다는 전제하에 할 수 있는 해결책입니다.

 

만약 라이브러리가 제공되지 않는다면, 아예 의존성을 없애버리는 방법도 택할 수 있습니다.

위의 abiFilters 내용을 모두 삭제하고, jniLibs 폴더도 지우는 방법인데, 이 경우는 라이브러리에 사용중이던 기능을 다른 오픈소스 같은 것으로 대체가 되어야 가능한 부분으로, 해결에 시간이 오래 걸릴 수 있습니다.

 

결론적으로 라이브러리의 의존성이 높을 수록 유지보수 난이도가 증가할 수있으니, 가급적 꾸준히 업데이트 되는 오픈소스 라이브러리를 사용하시는 것을 권장드리며, 이마 글을 마치겠습니다.

 

반응형