사건 발생하기 전
개인 프로젝트에 Dagger2를 적용하려고 한 필자는 아래와 같이 프로젝트를 설정했다.
apply plugin: 'kotlin-kapt'
dependencies {
def daggerVersion = '2.30.1'
implementation "com.google.dagger:dagger:$daggerVersion"
kapt "com.google.dagger:dagger-compiler:$daggerVersion"
}
sync는 무리 없이 통과가 되자 필자는 Component
와 Module
를 만들며 열심히 기존 프로젝트에 Dagger 라이브러리를 적용하고 있었다. 문제는 Build를 하고 나서 시작되었다.
사건 해결 노력
Step 1. dagger2 추가된 후 문제 발생한 것이 맞나?
dependencies에서 dagger gradle 구문을 제거한 후 빌드하면 정상적으로 빌드되었다. 따라서 daggeer 추가 후 문제가 발생한 것을 확인했다.
Step 2. dagger2 라이브러리의 문제인가?
dagger2를 실제로 적용해보기 전, CodeLab을 통해 튜토리얼 과정을 경험해 보았으며 프로젝트 실행까지 확인하였다. 라이브러리 문제는 아니다.
Step 3. 문제의 jar 파일 확인
gradle 명령어를 통해 라이브러리 jar 트리를 확인했고 dagger compiler 라이브러리에 문제의 jar 파일을 포함한 다는 것을 확인했다.
Step 4. 해당 모듈 제거하고 라이브러리 sync 하기
kapt ("com.google.dagger:dagger-compiler:$daggerVersion") {
exclude group: "com.google.guava", module: 'guava'
}
하지만 중요한 모듈인지 kotlin targetException
을 발생하며 빌드는 실패했다.
.. 2시간 동안 삽질하였으나 실패했다.. dagger2를 적용하여 프로젝트의 DI를 적용하려고 했지만 다음으로 미뤄야겠다.
참고
반응형
'Android > Error' 카테고리의 다른 글
[Android] contact picker doesn't work on Android 11 (2) | 2023.03.16 |
---|---|
[Android] Snackbar에서 발생하는 ScrollView can host only one direct child (0) | 2023.03.02 |
[Android] Kotlin runBlockingTest 오류 (0) | 2021.05.27 |
[Android] trying to draw too large Bitmap 해결하기 - Bitmap Resize (0) | 2020.02.07 |