Android build.gradle文件中的compileKotlin块抛出错误“;找不到参数[…]的方法compileKotlin();

Android build.gradle文件中的compileKotlin块抛出错误“;找不到参数[…]的方法compileKotlin();,android,gradle,kotlin,Android,Gradle,Kotlin,我正在尝试将Kotlin配置为在我的Android项目中使用Java1.8。我已经尝试在我的build.gradle文件的底部添加compileKotlin块,但是如果这样做,我会得到一个错误 发生的错误如下所示: 错误:(38,0)找不到参数的方法compileKotlin() [构建\u dvcqiof5pov8xt8flfud06cm3$\u运行_closure4@66047120]关于项目 org.gradle.api.Project类型的“:core” 没有这个区块,项目运行良好。我错

我正在尝试将Kotlin配置为在我的Android项目中使用Java1.8。我已经尝试在我的
build.gradle
文件的底部添加
compileKotlin
块,但是如果这样做,我会得到一个错误

发生的错误如下所示:

错误:(38,0)找不到参数的方法compileKotlin() [构建\u dvcqiof5pov8xt8flfud06cm3$\u运行_closure4@66047120]关于项目 org.gradle.api.Project类型的“:core”

没有这个区块,项目运行良好。我错过了什么?这是完整的
build.gradle
文件,它是非常基本的东西:

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'


android {
    compileSdkVersion 25
    buildToolsVersion '25.0.2'


    defaultConfig {
        minSdkVersion 24
        targetSdkVersion 25
        versionCode 1
        versionName '1.0.0'

        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    compile 'com.google.android.support:wearable:2.0.2'
}

repositories {
    mavenCentral()
}

compileKotlin {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8

    kotlinOptions {
        jvmTarget = '1.8'
        apiVersion = '1.1'
        languageVersion = '1.1'
    }
}

您得到的错误意味着项目中没有
compileKotlin
任务,这是Android项目所期望的

Android项目中的Kotlin编译任务名称包含名称(这些名称分别来自生成类型、产品风味和其他设置,它们看起来类似于
debug
releaseUnitTest
--任务分别为
compiledBugKotlin
compilerElementTestKotlin)。没有
compileKotlin
任务,它通常是为普通Java+Kotlin项目中的
main
源代码集创建的

最可能的情况是,您希望在项目中配置所有Kotlin编译任务,为此,您可以按如下方式应用该块:

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8

    kotlinOptions {
        jvmTarget = '1.8'
        apiVersion = '1.1'
        languageVersion = '1.1'
    }
}
从:

Android插件还将kotlinOptions扩展添加到Android部分,以设置所有kotlin任务的选项:

android {
    kotlinOptions {
        jvmTarget = '1.8'
        noStdlib = true
    }
}

这不是对这个问题的直接回答,但当我在build.gradle文件中遇到相同的
compileKotlin块时,Google引导我找到了这个答案。该文件抛出错误“找不到参数[…]的方法compileKotlin()”
错误

在我的例子中,问题是由于将只包含Java代码的代码模块导入到我的项目中而引起的。修复方法是确保Java特定模块的
build.gradle
中包含以下内容:

apply plugin: 'kotlin-android'

这是可行的,我认为compileKotlin适用于所有构建变体,但显然不是。谢谢我们需要把这些放在哪个文件和哪里lines@SIVAKUMAR.J,您可以将它们放在项目模块的
build.gradle
文件中。例如,在一个带有单个模块的Android项目中,
app
,将它们放入
app/build.gradle
。只需将它们附加到文件的末尾,以确保在访问Kotlin插件时已应用它们。应该是
tasks.withType(org.jetbrains.Kotlin.gradle.tasks.KotlinCompile::class)
@dioor我就是这样做的:
tasks.withType{…}
最佳答案!