JsonProperty不能在缩小时启用
我有以下班级
class CodeRequest(@JsonProperty("phone") val phoneNumber: String)
当我发送请求(使用改进)与这个类的对象作为正文(而缩小未启用)时,一切正常和请求将以这种形式发送{"phone": "123"}
但使用以下proguard-rules.pro
启用缩小将导致{"phoneNumber": "123"}
请求正文。
# Jackson -keep class com.fasterxml.jackson.databind.ObjectMapper { public <methods>; protected <methods>; } -keep class com.fasterxml.jackson.databind.ObjectWriter { public ** writeValueAsString(**); } -keep @com.fasterxml.jackson.annotation.* class * { *; } -keep @com.fasterxml.jackson.annotation.** class * { *; } -keep class com.fasterxml.** { *; } -keepattributes *Annotation*,EnclosingMethod,Signature,Exceptions,InnerClasses -keep class * { @com.fasterxml.jackson.annotation.* *; } -keep class * { @com.fasterxml.jackson.annotation.JsonProperty *;} # Application classes that will be serialized/deserialized over Jackson -keepclassmembers class my.application.data.models.** { *; } -keepclassmembers class my.application.domain.network.rest.** { *; }
这里缺少什么?
谢谢。
发布问题后几分钟找到解决方案。 问题不在于proguard
和jackson
,而在于kotlin.Metadata
删除存储在kotlin.Metadata
所需数据。 将以下规则添加到proguard中解决了问题:
-keep class kotlin.Metadata { *; }
- Kotlin崩溃无法将提供的符号转换为Dependency类型的对象:org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension_Decorated
- 测试环境配置:Android + JUnit 5 + Mockito + Spek + Kotlin
- 在Kotlin for Android中编写库是否有开销?
- 哪个主题属性更改EditText错误消息的文本颜色
- 我们可以在扑动中构建Android小部件吗?
- SearchView不会在第二个点上调用onQueryTextChange
- 如何从java类中的kotlin类创建对象?
- 需要Kotlin函数什么都不是,而是定义为一个不同的types
- 使用Kotlin的片段和活动