带有 Proguard 的 Kotlin 反射失败

ImM*_*han 9 java proguard kotlin kotlin-reflect

假设我有这门课

data class Person(val name: String?)
Run Code Online (Sandbox Code Playgroud)

当我 proguard 并运行该应用程序时,出现以下异常

kotlin.reflect.jvm.internal.KotlinReflectionInternalError: No accessors or field is found for property val com.whatever.packagee.Person.name: kotlin.String?
Run Code Online (Sandbox Code Playgroud)

我还发现这个问题是从这个反射代码库中抛出的。任何帮助,将不胜感激

小智 1

这为我解决了这个问题。

添加以下内容到 proguard 规则

-保留类 kotlin.reflect.jvm.internal。**

-keep 类 kotlin.Metadata { *; }