LoginSignup
15
13

More than 5 years have passed since last update.

-assumenosideeffects class android.util.Log { <methods>; } は使っちゃダメ

Posted at

この設定をすると、Logクラスのメソッドすべてが副作用がないものとして扱われます。すべてのメソッドとは、継承元のメソッドも含みます。

その結果 Object#wait() なども副作用なしとしてdead code eliminationの対象になり、すべての Object#wait() が素通りするようになります。

これを防ぐためには下記のように <methods> じゃなく個別に指定しないといけません。

-assumenosideeffects class android.util.Log {
    public static int v(...);
    public static int d(...);
    public static int i(...);
    public static int w(...);
    public static int e(...);
    public static int wtf(...);
}

最小確認コード: https://github.com/gfx/ProguardRemovesObjectWait

15
13
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
15
13