안드로이드

[Android] Room M1칩 MacBook 빌드 에러 삽질 of 삽질

Charlie_moon 2022. 6. 23. 20:09

 

 

 

클린아키텍쳐 공부를 하다보니 DI 라이브러리인 Hilt의 존재를 알게 되었고 나는 Hilt 공부를 시작했다.
신나게 회사 MacBook으로 안드로이드 코드랩을 따라하고 빌드하는데

 

갑자기!!!!!!!!!!!!!!!!!

 

Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
   > java.lang.reflect.InvocationTargetException (no error message)

 

빌드에러가

빡!

뒷목이

빡!

머리가

빡!

 

Hilt 공부를 하고 있었기 때문에 Hilt 버전에 문제가 있다 생각하고 Hilt 버전을 이리저리 바꿔보고 코틀린 버전도 이리저리 바꿔보고 해도 도저히 빌드가 안되는것... 습관처럼 에러 로그 최상단으로 가서 뭐가 문제인지 보고 구글링해서 따라해도 문제는 해결되지 않고...

스트레스로 빡!빡!이가 될거 같았다.

 

1일차

 

일단 후퇴...

(내일의 나는 일을 해야하니까)

 

 

2일차

 

급 검색의신 영접!

나... 강.림

 

폭풍검색 해서 얻은 결과 일부 Room 라이브러리 버전에서는 M1칩과 호환이 안된다는 것!

내가 프로젝트에 올려놓은 버전은 2.3.0 이었다.

솔루션으로 나온 해결책은 두가지가 있는데

 

첫번째
기존 사용중인 버전 Room 라이브러리에

kapt 'org.xerial:sqlite-jdbc:3.34.0'

위 라이브러리를 추가 하면된다.

 

 

두번째 방법은

 

Room 라이브러리의 버전을 2.4.0-alpha03 이상으로 올려줄것.

 

빌드해보니 언제 그랬냐는듯 너무나 잘 빌드되어 돌아가는 앱...

(후...)

 

이전 상태로 돌려 놓고 다시 빌드해서 빌드 오류를 발생시켜보았다. 자세히 보니 로그 최상단이 아닌 최하단에 

 

요렇게 SQLiteJDBCLoader 어쩌고 저쩌고....

이걸 빨리 캐치했으면 얼마나 좋았을까... 물론 확인을 꼼꼼히 못한 내 잘못이다.

덕분에 오늘도 삽질 경험지 많이 얻고 간다.

 

에러로그 보는법 따로 공부해야할듯하다...

 

 

참고 사이트

 

[AOS] kaptDebugKotlin 빌드 이슈 해결 ( feat. m1 )

이직한 회사에서 m1을 구매해 사용하고 있는데, 기존 프로젝트가 빌드에러가 발생 했습니다. Execution failed for task ':app:kaptQADebugKotlin'. > A failure occurred while executing org.jetbrains.kotlin.g..

superwony.tistory.com

 

 

Caused by: java.lang.Exception: No native library is found for os.name=Mac and os.arch=aarch64. path=/org/sqlite/native/Mac/aarc

I am using Android Studio [Android Studio Arctic Fox | 2020.3.1 Patch 1] My room library version is [2.3.0] Used Gradle version [7.0.1] Also added kapt 'org.xerial:sqlite-jdbc:3.36.0.1' Caused by:...

stackoverflow.com