带有下划线的Kotlin课程

问题描述 投票:0回答:1

请解释一下像StringsKt__StringsKt这样的课程的目的和含义是什么(即两个类名称之间有一个或多个下划线),同样,StringsKt__StringsJVMKt

字符串不是唯一的例子,还有很多其他的例子。在查看我的.apk中的classes.dex文件的结构时,我看到了它们。

screenshot here

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

android kotlin proguard
1个回答
1
投票

这是一个生成的文件。如果有几个Kotlin文件用相同的JvmName命名,那么将生成这样的文件。

我们以Strings.ktStringNumberConversions.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来区分它们。

© www.soinside.com 2019 - 2024. All rights reserved.