Kotlin反映proguard的SmallSortedMap [英] Kotlin reflect proguard SmallSortedMap

查看:110
本文介绍了Kotlin反映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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆