程序发布时,有时候会发布混淆版本,发布时,可能会出现和正常非混淆版本不一致的现象。
原因可能是混淆时,某些接口、类信息被混过。
程序中要尽可能避免使用类名称来进行判断,举个例子:
if(null != mNowState && mNowState.getClass().getSimpleName().equals("SelectView"))//此处直接使用了字符串“<span style="font-family: Arial, Helvetica, sans-serif;">SelectView</span><span style="font-family: Arial, Helvetica, sans-serif;">” ,可能会造成错误。</span>
{
return ((SelectView)mNowState).dispatchKeyEvent(event);
}
正确的方式:
if(null != mNowState && mNowState.getClass().getName().equals(SelectView.class.getName()))//虽然这样写也不推荐,但是却可以防止类名称被混淆而造成的问题
{
return ((SelectView)mNowState).dispatchKeyEvent(event);
}