Kotlin 类 带下划线

Kotlin classes with underscores

请解释一下 class 的目的和含义是什么,例如 StringsKt__StringsKt(即双 class 名称,中间有一个或多个下划线),类似地,StringsKt__StringsJVMKt?

字符串不是唯一的例子,还有很多其他的例子。我在查看 .apk.

classes.dex 文件的结构时看到了它们

screenshot here

我问是因为我遇到了一种情况,我必须在我的混淆规则中明确说明其中的一些。没有它应用程序崩溃了。

这是一个生成的文件。如果有 多个以相同 JvmName.

命名的 Kotlin 文件,将生成这样的文件

我们以Strings.kt and StringNumberConversions.kt为例:

// StringNumberConversions.kt
@file:kotlin.jvm.JvmMultifileClass
@file:kotlin.jvm.JvmName("StringsKt")
...

// Strings.kt
@file:kotlin.jvm.JvmMultifileClass
@file:kotlin.jvm.JvmName("StringsKt")
...

两者都有@file:kotlin.jvm.JvmName("StringsKt"),所以生成StringsKtStringsKt__StringNumberConversionsKt来区分