[Error/해결] 유니티 안드로이드 build and run 오류 (Unable to find libtensorflowlite_c, Unable to get provider com.voxelbusters.replaykit...)

OOING·2023년 11월 9일
0

Trouble Shooting

목록 보기
7/11
post-thumbnail

빌드만 하면 끝인 줄 알았던 과거의 나는 테스트 기기에 apk를 설치하였으나 실행이 되지 않는 문제에 직면하고말았다.
.aab를 .apk로 변환하는 과정에서 오류가 생긴건 아닐지 의심하며, 컴퓨터와 테스트용 스마트폰을 연결하고 build and run을 클릭했으나, 여전히 실행이 되지 않았다.

Android Logcat

Android Logcat을 이용하면 연결해놓은 테스트 기기에서 발생하는 Log들을 확인할 수 있다.

이런 식으로 로그가 나오고, 이 로그를 통해 crash의 원인을 파악하고자 했다.

Unable to find libtensorflowlite_c

현재 파악 결과 해당 오류는 앱의 비정상 오류(crash)와 전혀 관련이 없다!
crash 원인은 '안드로이드 버전(정확히는 API)과 관련이 있었다.
이 앱의 경우에는 API Level이 31 이하인 경우 crash가 발생했다.
(왠지는 모르겠으나, 이게 tflite때문일까?)

그래도 해결 과정이 길었으니.. 내용을 삭제하지는 않겠다..

구글링을 해도 정보가 아무것도 나오지 않는 오류가 발생했다.
GPT에게 오류를 파악해달라고 요청했더니, 이런 답변을 주었다.

굉장히 많은 시도를 해봤는데 해결법은 간단했다..

  1. AndroidManifest에서 SDK 버전 수정 (실패)
  2. 라이브러리가 꼬인건가 싶어서 External dependency manager - Android Resolve - Force Resolve (실패)
  3. Unable to find ~ 의 Tensorflow Lite 라이브러리를 찾지 못하는 것으로 판단, 파일들을 Assets/Plugin/Android로 이동 (실패)
  4. 연결한 스마트폰의 안드로이드 버전이 target API보다 낮은게 원인인가 싶어 Target API 를 연결한 스마트폰에 맞게 고침 (실패)
  5. 텐서플로우 패키지를 프로젝트에서 과감히 제거했더니 compile 에러가 발생하네.. (실패)
  6. 구버전(220725) 라이브러리 적용 (성공!)

여기서 성공한 구버전은 롤백한 뒤 해당 프로젝트의 패키지를 다시 가져왔다는 말이다.
아마 프로젝트를 수정하는 과정에서 라이브러리와 충돌이 생긴게 아니였을까 싶다😂

그런데 이 오류를 해결하고 나니 다른 오류가 생겼다.

Unable to get provider com.voxelbusters.replaykit...

이 오류는 검색해도 꽤 나오고, 간단히 해결할 수 있었다.
External Dependency Manager -> Android -> Force Resolve (성공)

External Dependency Manager package import와 관련해서는 검색하면 다양한 참고 블로그들이 나오므로 검색해서 찾아보면 좋을 것 같다😊 (오류 다 해결한 줄 알고 한시름 놓고 있었더니 또 오류 해결하러 갔거든요......😭)

다음 포스트가 진짜 빌드 및 출시 오류 해결 마지막 탄...

profile
HICE 19

0개의 댓글