1. 程式人生 > >MVPHelper外掛之混淆報錯 ClassCastException: Object cannot be case to xxx

MVPHelper外掛之混淆報錯 ClassCastException: Object cannot be case to xxx

之前在android stduio裡用mvphelper自動生成,最近要發包,加了混淆

打了個release包開啟直接崩了,檢視日誌顯示是獲取的model為null。

以為是泛型的問題,但是加了過濾泛型

-keepattributes Signature 

最後想了很多都是不知道為什麼

打log跟進類的轉換

public static <T> T getT(Object o, int i) {
    try {
        return ((Class<T>) ((ParameterizedType) (o.getClass()
                .getGenericSuperclass())).getActualTypeArguments()[i])
                .newInstance();
    } catch (InstantiationException e) {
    } catch (IllegalAccessException e) {
    } catch (ClassCastException e) {
    }
    return null;
}

還是不行,但是網上有人不是混淆的原因,還是貼出來供大家參考自己的原因

最後猛然醒悟是混淆的原因把Model類給混淆了,所以object不能轉換成model型別。

在混淆裡

-keep class xxxx.model類

至此完美解決,多思多想,不要拘泥於一個小地方抓著不放