当我尝试在Kotlin中使用已归类化的类的sealedSubClasses
属性时,它只能在调试中使用,而不能在发行版中使用。我猜这是ProGuard的问题,但我不知道该如何解决。我已经尝试过将所有类保留在密封类所在的模块中,但是我对此并不走运。 sealedSubClasses
属性始终返回一个空列表。
答案 0 :(得分:3)
找到了两种解决此问题的方法:
-keep class com.example.ClassName { *; } -keep class com.example.ClassName$* { *; }
@Keep sealed class ClassName{ @Keep object A : ClassName() @Keep object B : ClassName() }
这个对我不起作用:
-keep class kotlin.Metadata { *; }
还有一个错误 https://issuetracker.google.com/issues/169264693 可能是您的问题的一部分。
答案 1 :(得分:0)
您可以尝试
-keep class kotlin.Metadata { *; }
从类中获取缺少的属性
答案 2 :(得分:-1)
向您的proguard文件添加其他规则:
-keepnames class com.fully.qualified.ClassName* {
*;
}
注意星号字符。