9

我将 ProGuard 用于我的 Spring Boot 应用程序代码。升级到 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注释参数的混淆?注释本身没有被混淆,它仍然引用原始类名,这些类名被写为字符串值。我也试图混淆元数据注释无济于事。

4

0 回答 0