한 줄 편집으로 내 프로젝트에서 Dagger의 Annotation Processing을 Android Studio에서 디버깅

Dagger가 내부에서 어떤 모델을 만들어 어떤 처리를 하고 있는 거야. . 라고 되거나, 에러가 되어, 내용의 코드를 읽으러 가서, 이 변수에 무엇이 들어가 있을 것이다. . 가 되거나 하는 것이 드물게 있으므로 메모해 둡니다.

app 모듈 등에서 compileOnly에서 kapt에서 사용하는 컴파일러 종속성을 추가하여 Android Studio에서 사용하고 디버깅하려는 코드를 볼 수 있습니다. 프로젝트에서의 편집은 이것뿐입니다. 디버그에서의 사용이 끝나면 지우십시오.
dependencies {
    // compileOnlyで追加する
    compileOnly 'com.google.dagger:dagger-compiler:2.30.1'
    // hiltなら以下など
    compileOnly "com.google.dagger:hilt-android-compiler:2.29.1-alpha"
}

디버그하고 싶은 코드를 command + option + o 등 (mac에서 Find simbol 바로 가기)로 브레이크 포인트 붙이고 싶은 클래스, 처리를 찾아 브레이크 포인트를 붙입니다.



configuration을 열고 EditConfigrations...를 클릭합니다.

+ 버튼에서 Remote 추가

이전에 compileOnly 를 추가한 모듈에서 Use module classpath 를 추가합니다.


다음으로 터미널 등에서 디버그하고 싶은 프로젝트에서 실행하고 싶은 모듈이나 변형으로 다음 Gradle 빌드를 이동합니다. (Kotlin이므로 kapt가 되어 있습니다만, Java의 분은 그 태스크를 지정해 주세요.)

./gradlew --no-daemon clean app:kaptDebugKotlin -Dorg.gradle.debug=true -Dkotlin.daemon.jvm.options="-Xdebug,-Xrunjdwp:transport=dt_socket\,address=5005\,server=y\,suspend=n"

이 Gradle 빌드는 첫 단계에서 실행되지 않고 중지됩니다.


Android Studio에서 Remote Configuration이 설정되어 있는지 확인하고 디버그 아이콘을 누릅니다.

그러면 빌드가 움직이기 시작하고 멈추고 싶은 곳에서 디버거 실행을 멈추고 디버깅할 수 있습니다.



이것은 자신의 프로젝트 일 필요는 없으며 모든 프로젝트에서 compileOnly를 추가하면 확인할 수 있습니다.
또 이것은 Dagger에 한정되지 않고, 다양한 처리에 응용할 수 있을 것 같습니다.

좋은 웹페이지 즐겨찾기