2017-08-19 1 views
2

Ich begann Kotlin im Android Studio verwenden, aber ich mochte die Kotlin Quellen, die die gleiche Art und Weise überprüfen ich Ctr-B oder Cmd-B für „springen auf die Erklärung“ drücken kann, um die Quelle für jeden Standard-Java zu sehen Klasse.Wie befestige ich Quellen für Kotlin in Android Studio?

Zum Beispiel, wenn ich das Standard-Android Studio Kotlin Projekt nehmen und eine Linie, die das Standard-Kotlin hinzufügen listOf() Aufruf:

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

und drücke Ctr-B auf listOf() erhalte ich nur folgenden:

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

Wenn ich auf Choose Sources klicke, kann ich die Quelldatei im Verzeichnis, das auftaucht, nicht finden. Wie richte ich Android Studio ein, um die Quelle für diese Standard-Kotlin-Klassen zu sehen?

Antwort

4

In der dekompilierten Klasse Datei, die Sie auf Choose Sources klicken müssen:

the bytecode file

Sie erhalten dann einen Dialog erhalten, die wie folgt aussieht:

runtime jar doesn't have sources

Sie werden nicht finden, die Quellen im Verzeichnis kotlin-stdlib. Stattdessen müssen Sie kotlin-stdlib-common nach unten scrollen:

sources are in kotlin-stdlib-common

Wo Sie die Quellen wählen können. Der Befehl jump to declaration funktioniert nun wie erwartet:

/** 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() 
Verwandte Themen