如何在Android Studio中附加Kotlin的来源?

Dav*_*son 3 kotlin android-studio

我开始在Android Studio中使用Kotlin但是我想以我可以按下的方式检查Kotlin源,Ctr-B或者Cmd-B"跳转到声明"以查看任何标准Java类的源代码.

例如,如果我采用默认的Android Studio Kotlin项目并添加一行调用标准Kotlin listOf():

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    listOf("hello", "goodbye");
}
Run Code Online (Sandbox Code Playgroud)

Ctr-BlistOf()我只得到了以下内容:

public fun <T> listOf(vararg elements: T): kotlin.collections.List<T> { /* compiled code */ }
Run Code Online (Sandbox Code Playgroud)

如果我点击Choose Sources我找不到出现的目录中的源文件.如何设置Android Studio以查看这些标准Kotlin类的来源?

Dav*_*son 5

在反编译的类文件中,您需要单击Choose Sources:

字节码文件

然后,您将看到如下所示的对话框:

运行时jar没有源

您将无法在kotlin-stdlib目录中找到源.相反,您需要向下滚动到kotlin-stdlib-common:

来源是kotlin-stdlib-common

在哪里可以选择来源.该jump to declaration命令现在按预期工作:

/** Returns a new read-only list of given elements.  The returned list is serializable (JVM). */
public fun <T> listOf(vararg elements: T): List<T> = if (elements.size > 0) elements.asList() else emptyList()

/** Returns an empty read-only list.  The returned list is serializable (JVM). */
@kotlin.internal.InlineOnly
public inline fun <T> listOf(): List<T> = emptyList()
Run Code Online (Sandbox Code Playgroud)