Subscribed unsubscribe Subscribe Subscribe

Islands in the byte stream

Technical notes by a software engineer

Hugoの @DebugLog アノテーションが @TargetApi を無効化するようにみえる件

Hugo便利ですね!ただtraceするだけのログを吐いたりメソッドの実行時間を測定するためにコードを書かなくてよくなるのでだいぶ使い勝手がいいデバッグ用ライブラリだと思います。

さて、Hugoを併用しているプロジェクトで@TargetApi をつけているのにlintがNewApiエラーを報告するという問題がありました。どうしたものかと思ったんですが、これはHugoの@DebugLogを同時につけているせいでした。Hugoがbytecode weavingでメソッドのバイトコードをいじり、その結果lintからみると@TargetApiなしで新しいAPIを呼んでいるようにみえるようです。@DebugLog を消せばlintエラーは消えます。