Kotlin反映proguard的SmallSortedMap [英] Kotlin reflect proguard SmallSortedMap
问题描述
警告:kotlin.reflect.jvm.internal.KClassImpl:找不到引用的类kotlin.reflect.jvm.internal.KClassImpl $ kotlin.reflect.jvm.internal.KClassImpl $ Data警告:kotlin.reflect.jvm.internal.KClassImpl:找不到引用的类kotlin.reflect.jvm.internal.KClassImpl $ kotlin.reflect.jvm.internal.KClassImpl $ Data警告:kotlin.reflect.jvm.internal.KClassImpl $ data $ 1:找不到引用的类kotlin.reflect.jvm.internal.KClassImpl $ kotlin.reflect.jvm.internal.KClassImpl $ Data警告:kotlin.reflect.jvm.internal.KClassImpl $ data $ 1:找不到引用的类kotlin.reflect.jvm.internal.KClassImpl $ kotlin.reflect.jvm.internal.KClassImpl $ Data警告:kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap:找不到引用的类kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap $ kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap $入口警告:kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap:找不到引用的类kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap $ kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap $EntrySet警告:kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap $ Entry:找不到引用的类kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap $ kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap $ Entry警告:kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap $ Entry:找不到引用的类kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap $ kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap $ Entry
我收到这些警告,这些警告破坏了我在任务 transformClassesAndResourcesWithProguardForAppRelease
上发布的版本.
我知道我可以通过使用 -dontwarn
来忽略警告或通知Proguard不发出警告,但是我想知道是否还有其他人遇到了这个问题,并且确实找到了正确的解决方法.>
我正在使用Kotlin版本 1.1.4-2
从问题 KT-7652 :
无论如何,目前预计会混淆
kotlin.*
时的反射失败.我们可以做的是为Proguard制定一套有用的规则,以最小化反射库的二进制大小.
因此,目前没有正确的解决方法.
Warning: kotlin.reflect.jvm.internal.KClassImpl: can't find referenced class kotlin.reflect.jvm.internal.KClassImpl$kotlin.reflect.jvm.internal.KClassImpl$Data
Warning: kotlin.reflect.jvm.internal.KClassImpl: can't find referenced class kotlin.reflect.jvm.internal.KClassImpl$kotlin.reflect.jvm.internal.KClassImpl$Data
Warning: kotlin.reflect.jvm.internal.KClassImpl$data$1: can't find referenced class kotlin.reflect.jvm.internal.KClassImpl$kotlin.reflect.jvm.internal.KClassImpl$Data
Warning: kotlin.reflect.jvm.internal.KClassImpl$data$1: can't find referenced class kotlin.reflect.jvm.internal.KClassImpl$kotlin.reflect.jvm.internal.KClassImpl$Data
Warning: kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap: can't find referenced class kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap$kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap$Entry
Warning: kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap: can't find referenced class kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap$kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap$EntrySet
Warning: kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap$Entry: can't find referenced class kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap$kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap$Entry
Warning: kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap$Entry: can't find referenced class kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap$kotlin.reflect.jvm.internal.impl.protobuf.SmallSortedMap$Entry
I'm getting these warnings which break my release build on the task transformClassesAndResourcesWithProguardForAppRelease
.
I know I can just ignore the warnings or inform proguard to not warn by using -dontwarn
but I was wondering if anyone else had come across this and had actually found the correct fix.
I'm using Kotlin version 1.1.4-2
Quoting Alexander Udalov from issue KT-7652:
In any way, reflection failures when
kotlin.*
is obfuscated are expected at the moment. What we can do is work on a useful set of rules for proguard to minimize the binary size of the reflection library.
So there is no correct fix at the moment.
这篇关于Kotlin反映proguard的SmallSortedMap的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!