java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType

1,827 阅读1分钟

Android升级Gradle8.0后release包报错如下

java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType

原因8.0以后R8是默认full modle

解决办法

1.关了它

android.enableR8.fullMode=false

2.兼容它

-dontwarn okhttp3.internal.platform.**
-dontwarn org.conscrypt.**
-dontwarn org.bouncycastle.**
-dontwarn org.openjsse.**

# TODO: Waiting for new retrofit release to remove these rules
-keep,allowobfuscation,allowshrinking interface retrofit2.Call
-keep,allowobfuscation,allowshrinking class retrofit2.Response
-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation

-keep,allowobfuscation,allowshrinking class com.your.company.YourCustomSealedClass

参考retrofit/retrofit2.pro at master · square/retrofit · GitHub