Android, 모듈분리에 따른 Room의 dependency 문제

이도현·2023년 9월 5일
0

Error Collection

목록 보기
12/13

0. 오류

Cannot access 'androidx.room.RoomDatabase' which is a supertype of 'com.example.data.db.AppDatabase'. Check your module classpath for missing or conflicting dependencies

문제상황은 data 모듈에 생성한 Room의 Dao클래스가 presentation 모듈에서 사용하려 할 때 발생했다.

1. 원인

presentation은 data모듈에 종속되어있다. 그래서 data 모듈에서 implementation 한 것은 presentation에서 사용하기에 부적절하다. 그래서 api로 교체해주거나 의존성 주입을 해주어야한다.

2. api를 사용할 경우

api를 사용할 경우 모든 모듈에서 사용가능하다. 하지만 그 종속성이 변경 될 때 의존하는 모든 모듈들도 다시 컴파일해야한다.

3. 의존성 주입 사용

  • 모듈분리를 왜했냐. 결합도를 줄이기 위해 모듈을 분리한 것이다. api가 필요한 상황이 있겠지만 상황을 고려하여 의존성 주입을 통해 결합도를 줄이도록 해야 할 수도 있다.

Reference

https://stackoverflow.com/questions/53152796/androidx-room-unresolved-supertypes-roomdatabase

profile
좋은 지식 나누어요

0개의 댓글