找一些帮助谁让专业人士在前卫兵。
kotlin使用的注释反射(jackson模块所需的依赖项-kotlin v2.8.8)在升级到kotlin 1.1.2-3之后将被删除。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的源代码它是一个为@Documented、@RetentionPolicy.CLASS、@Target导入java.lang.annotations.*的@interface
发布于 2017-05-24 16:48:30
我们的解决办法是为反射警告添加dontwarn。
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.CallableDescriptor
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.ClassDescriptor
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.ClassifierDescriptorWithTypeParameters
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.annotations.AnnotationDescriptor
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.impl.PropertyDescriptorImpl
-dontwarn kotlin.reflect.jvm.internal.impl.load.java.JavaClassFinder
-dontwarn kotlin.reflect.jvm.internal.impl.resolve.OverridingUtil
-dontwarn kotlin.reflect.jvm.internal.impl.types.DescriptorSubstitutor
-dontwarn kotlin.reflect.jvm.internal.impl.types.DescriptorSubstitutor
-dontwarn kotlin.reflect.jvm.internal.impl.types.TypeConstructor这些注释存在于kotlin编译器中,这也是proguard找不到它们的原因。只需忽略警告,而不是将kotlin编译器添加为依赖项(正如此问题所暗示的Cannot resolve symbol @ReadOnly and @Mutable in Kotlin 1.1.0 compilation)。
这可能是kotlin中的一个bug;他们应该提供保护规则,以防止集成应用程序对其进行隐藏。
发布于 2017-10-10 18:53:35
或者更短的版本:
-dontwarn kotlin.reflect.jvm.internal.**
https://stackoverflow.com/questions/44161717
复制相似问题