从7.4.2更新到gradle 8.1.1后,运行时出现错误:“java.lang.IllegalArgumentException:无法为类$myEnumClass创建转换器,原因如下:java.lang.NullPointerException:尝试对空对象引用”“调用虚拟方法”java.lang.reflect.Field java.lang.Class.getField(java.lang.String)“”。我使用EnumJsonAdapterFactory来解析在创建莫希时以这种方式声明的枚举:val moshi = Moshi.Builder().add(EnumJsonAdapterFactory).build()
有什么想法吗?
1条答案
按热度按时间6yt4nkrj1#
解决方案:我发现了这个解决方案,我把它贴出来是为了帮助每个面临同样问题的人。
使用EnumJsonAdapterFactory解析枚举时,必须添加
-keep class your.package.name.EnumIntSafeJsonAdapter { *; }
在proguard-rules.proapp的build.gradle的www.example.com中。这个错误是由于android.enableR8.fullMode在gradle 8及更高版本中默认启用的事实造成的