我已经使用 proguard 几个月了,今天我开始收到这个警告:
[proguard] Initializing...
[proguard] Warning: com.me.MyFragment: can't find referenced class com.me.MyFragment$1
...
这是有问题的代码:
public class MyFragment extends Fragment {
private static final boolean DEBUG = false;
public void foo() {
if (DEBUG) {
Button btn = new Button();
btn.setOnClickListener(new OnClickListener() {
...
});
...
}
}
}
OnClickListener 是缺少的 $1 引用。但是如果 DEBUG 布尔值设置为 false,则不应触及此代码,所以我不明白为什么 proguard 会在这里警告我。
如果我将布尔标志设置为 true,则 proguard 运行正常而不会发出警告。知道这是怎么发生的吗?
谢谢