Proguard

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

More than 3 years have passed since last update.

この設定をすると、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