【发布时间】:2017-10-24 23:52:45
【问题描述】:
寻求将 pro 置于 proguard 中的人的帮助。
升级到 kotlin 1.1.2-3 后,kotlin-reflect 使用的注释(jackson-module-kotlin v v2.8.8 所需的依赖项)将被剥离。 proguard的错误是:
Warning:kotlin.reflect.jvm.internal.impl.descriptors.CallableDescriptor: can't find referenced class org.jetbrains.annotations.ReadOnly
这发生在一些注释上,而不仅仅是 ReadOnly。我们已经尝试添加一个好的 ol' catch all 但错误仍然存在:
-keep class org.jetbrains.kotlin.** { *; }
-keep class org.jetbrains.annotations.** { *; }
-keepclassmembers class ** {
@org.jetbrains.annotations.ReadOnly public *;
}
查看ReadOnly 的源代码,这是一个@interface,其中java.lang.annotations.* 为@Documented、@RetentionPolicy.CLASS、@Target 导入
【问题讨论】:
-
添加一个注释,我们已经尝试添加keepclassmembers并且我们确实有keepAttributes
-keepattributes *Annotation*-keepclassmembers class ** { @org.jetbrains.annotations.ReadOnly public *; } -
如果在 Kotlin 升级后开始出现这种情况,我建议您提交票证 on their bug tracking system。
标签: proguard kotlin kotlin-reflect