带有proguard的kotlin-reflect会导致反射错误

时间:2019-01-15 14:18:14

标签: spring-boot kotlin proguard kotlin-reflect

我将ProGuard用于我的春季启动应用程序代码。升级到Spring Boot 2之后,我无法再启动应用程序。

Spring Boot 2使用kotlin-reflect创建bean,在反射过程中使用kotlin.Metadata注释。该注释具有未混淆的值,因此kotlin-reflect正在寻找具有原始名称的方法。并引发以下异常:

kotlin.reflect.jvm.internal.KotlinReflectionInternalError: Could not compute caller for function: public constructor ProjectService(...

ProjectService被混淆为F,因此没有这样的构造函数。

当我保留班级名称时,我在其他地方也遇到相同的问题:

kotlin.reflect.jvm.internal.KotlinReflectionInternalError: Could not compute caller for function: public open fun addRole(...

有没有办法解决kotlin.Metadata注释参数的混淆问题?注释本身不会被混淆,它仍然引用原始的类名称,这些名称以字符串值的形式编写。我还试图混淆元数据注释,但无济于事。

0 个答案:

没有答案