Gradle Kotlin-DSL配置不起作用,Android扩展功能未识别



我正在尝试用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()
    }
}

和我的应用程序级gradle:

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

两个文件名都是build.gradle.kts。Gradle版本为5.2.1。我有一个问题是,iDE无法识别App-Gradle文件中的Android {}部分,我无法配置CompilesDkversion等内容。再过一次,我尝试将项目迁移到Kotlin-dsl再一次,除了失败和沮丧之外,什么都没有。不知道为什么这永远无法正常工作,总是让我保持旧的方式。我做错了什么,为什么不起作用?

我面对与红色的android标签视图相同的东西。我如何解决错误,我只是从构建选项中重建项目。(构建 ->重建项目),我看到ProgrogruardFiles系列不像所有字符串一样,都不像所有字符串一样。我用

代替
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")

之后,我再次重建了项目,而Gradle建议我"在您的项目中添加依赖性",单击该问题已解决。

这是我的模块级gradle

plugins {
    id("com.android.application")
    kotlin("android")
    kotlin("android.extensions")
    kotlin("kapt")
}
android {
    compileSdkVersion(29)
    defaultConfig {
        applicationId = "com.example.app"
        minSdkVersion(21)
        targetSdkVersion(29)
        versionCode = 1
        versionName = "1.0"
        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
    buildTypes {
        getByName("release") {
            isMinifyEnabled = false
            proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")}
}
}
dependencies {
implementation(fileTree(mapOf("dir" to "libs", "include" tolistOf("*.jar"))))
implementation ("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41")
implementation ("androidx.appcompat:appcompat:1.0.2")
implementation ("androidx.core:core-ktx:1.0.2")
implementation ("androidx.constraintlayout:constraintlayout:1.1.3")
testImplementation ("junit:junit:4.12")
androidTestImplementation ("androidx.test:runner:1.2.0")
androidTestImplementation ("androidx.test.espresso:espresso-core:3.2.0")
}

我也遇到了同样的问题,在将kotlin version1.3.21升级到1.3.71之后,还将com.android.tools.build:gradle version3.3.2更改为CC_5

也许这将帮助您解决错误。

浪费时间4小时后,我解决了这些问题。

  1. 在您的项目根文件夹中查找gradlew
  2. 右键单击它,然后打开 - >终端
  3. ./gradlew tasks命令并输入。
  4. 如果在您的build.gradle文件中显示任何错误,请修复并重新运行./gradlew tasks命令,直到解决所有错误并可以看到构建成功
  5. 现在同步您的gradle文件。

同步完成后,所有扩展功能将被Android Studio识别,红色标记将消失。

对我有用的是:

plugins {  
    id("com.android.library")
}

然后我可以正常使用:

android {
    namespace = "com.example.whatever"
}

逐步逐步

  1. 更新到Gradle包装器5.0或更高版本
  2. 重命名root-> settings.gradle to root-> settings.gradle.kts和in file

    包括':app'//之前

    包括(":app")//

  3. 之后
  4. 重命名root-> build.gradle to root-> build.gradle.kts和与该文件中相同的更改

    buildscript {

    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)
    }
    }
    
  5. 相同的重命名应用程序 -> build.gradle到app-> build.gradle.kts和与该文件中相同的更改

最新更新