6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

1行編集で自分のプロジェクトでDaggerのAnnotation ProcessingをAndroid Studioでデバッグする

Last updated at Posted at 2020-11-29

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のショートカット)でブレークポイントつけたいクラス、処理を探してブレークポイントをつけます。

image.png

configurationを開いて、EditConfigrations...をクリックします。
image.png
+ボタンから、Remoteを追加します
image.png
Use module classpathを先程compileOnlyを追加したモジュールで追加します。
image.png

次にターミナルなどからデバッグしたいプロジェクトで実行したいモジュールやバリアントにして次の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ビルドは最初の段階で実行されずに止まります。
image.png

Android Studio上でRemoteのConfigurationが設定されているのを確認して、デバッグのアイコンを押します。
image.png
するとビルドが動き出して、止まってほしいところでデバッガーの実行を止めてデバッグすることができます。

image.png

これは自分のプロジェクトである必要はなく、どのプロジェクトでもcompileOnlyを追加すれば確認できます。
またこれはDaggerに限定されず、さまざまな処理に応用できそうです。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?