Android Studio Kotlin - Expecting a top level declaration?

2 Antworten

Die drei Zeilen stehen für einen veralteten Ansatz, Plugins anzuwenden. So und so gehören sie nicht in den Java-/Kotlin-Code. Es sind Anweisungen für dein Buildtool (Gradle). Der richtige Zielort wäre in deinem Fall also die build.gradle.kts. Der Import muss so aussehen:

plugins {
  id("com.android.application")
  kotlin("android")
  kotlin("android.extensions")
}

Wie du generell DSL für Gradle aktivierst, wird in diesem Artikel beschrieben. Oder du schaust im Gradle Repository je Package. Dort werden auch die Imports für die build.gradle aufgeführt.

Allerdings würde ich doch einmal hinterfragen, ob du das gerade noch wirklich machen musst und dein Problem nicht eigentlich woanders liegt. Überprüfe doch erst einmal, ob dein Button tatsächlich unter der erwarteten ID im activity_main-Layout liegt.

Die Zeilen mit "apply plugin ..." gehören nicht in die Kotlin Source Daten (.kt).

Laut kurzer Recherche gehört das in die Gradle Dateien. https://kotlinlang.org/docs/gradle.html#targeting-multiple-platforms

In der Projektstruktur in Android Studio solltest du das finden:

Bild zum Beitrag

Du öffnest die Module build.gradle. Der Anfang der Datei sollte im etwa so aussehen:

plugins {
    id 'com.android.application'
    id 'kotlin-android'
}

Dort fügst du das dritte Plugin "kotlin-android-extensions" ein, sodass es dann so aussieht:

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-android-extensions'
}

Nach dem Ändern sollte oben ein blauer Balken auftauchen, wo du dann auf "Sync Now" tippst, damit Gradle ausgeführt wird.

 - (Computer, Technik, Technologie)