莫希-无法为Gradle 8及更高版本的枚举类创建转换器

vof42yt1  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(179)

从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()
有什么想法吗?

6yt4nkrj

6yt4nkrj1#

解决方案:我发现了这个解决方案,我把它贴出来是为了帮助每个面临同样问题的人。
使用EnumJsonAdapterFactory解析枚举时,必须添加
-keep class your.package.name.EnumIntSafeJsonAdapter { *; }
在proguard-rules.proapp的build.gradle的www.example.com中。这个错误是由于android.enableR8.fullMode在gradle 8及更高版本中默认启用的事实造成的

相关问题