Gradle kotlin-dsl 配置不起作用,无法识别 android 扩展功能

Lem*_*981 7 android gradle gradle-kotlin-dsl

我正在尝试使用 kotlin-dsl 配置我的 gradle 设置。我的项目 gradle 是这样的:

buildscript {
    repositories {
        google()
        jcenter()
    }

dependencies {
        classpath("com.android.tools.build:gradle:3.3.2")
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21")
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}
Run Code Online (Sandbox Code Playgroud)

和我的应用程序级gradle:

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

android {  // marked red

}
Run Code Online (Sandbox Code Playgroud)

两个文件名都是 build.gradle.kts。Gradle 版本是 5.2.1。我遇到的问题是 IDE 无法识别 app-gradle 文件中的 android {} 部分,我无法配置 compileSdkVersion 等内容。我又一次尝试将项目迁移到 kotlin-dsl再一次,只有失败和沮丧。不知道为什么这永远行不通,总是让我保持旧的方式。我做错了什么,为什么不起作用?

Shw*_*han -1

一步一步去

  1. 更新到 Gradle Wrapper 5.0 或更高版本
  2. 将 root -> settings.gradle 重命名为 root -> settings.gradle.kts 并在文件中

    // 之前包含 ':app'

    include(":app") // 之后

  3. 将 root -> build.gradle 重命名为 root -> build.gradle.kts 并进行与该文件中相同的更改

    构建脚本{

    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:3.3.1")
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.11")
    }
     }
    
    allprojects {
    repositories {
        jcenter()
        google()
    }
    }
    
    tasks {
    val clean by registering(Delete::class) {
        delete(buildDir)
    }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将 app -> build.gradle 重命名为 app -> build.gradle.kts 并进行与该文件中相同的更改