pet*_*udo 5 enums proguard kotlin
嗨,有人可以请我告诉我带枚举的Kotlin类是否有任何特定的规则吗?简单的例子
data class Passenger(
var type: Type?,
var id: Int,
var age: Int
) {
companion object {
const val AGE_NOT_SET = -1
}
enum class Type {
ADULT, CHILD, INFANT
}
constructor() : this(null, 0, 0)
}
Run Code Online (Sandbox Code Playgroud)
如果将对象初始化为Passenger(CHILD, 123456, 4)转换为Json并稍后解析回POJO,它将导致Passenger(null, 0,0)
我有
-keepclassmembers,allowoptimization enum * {
public static **[] values(); public static ** valueOf(java.lang.String);
}
Run Code Online (Sandbox Code Playgroud)
在我适用于Java枚举的proguard规则中,但由于某种原因,它对于Kotlin失败
Mig*_*iel 10
看起来您需要保留所有公共枚举类成员以避免此错误。这对我有用:
-keepclassmembers enum * {
public *;
}
Run Code Online (Sandbox Code Playgroud)
-keep class Type {
public *;
}
Run Code Online (Sandbox Code Playgroud)
这对我有用。如果它不适合您,请尝试将枚举移至单独的文件。
| 归档时间: |
|
| 查看次数: |
605 次 |
| 最近记录: |