android build.gradle文件中的compileKotlin块引发错误“找不到参数[...]的方法compileKotlin()”

f87krz0w  于 2023-03-11  发布在  Android
关注(0)|答案(5)|浏览(458)

我尝试在Android项目中配置Kotlin以使用Java 1.8。我尝试在build.gradle文件的底部添加compileKotlin块,但如果这样做,我会得到一个错误。
发生的错误如下所示:
错误:(38,0)在类型为org.gradle.api.Project的项目“:core”上找不到参数为[build_dvcqiof5pov8xt8flfud06cm3$_run_closure4@66047120]的方法compileKotlin()。
没有这个代码块,项目运行得很好。我错过了什么?下面是完整的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'
    }
}
jchrr9hc

jchrr9hc1#

您得到的错误意味着项目中没有compileKotlin任务,这是Android项目的预期错误。
Android项目中的Kotlin编译任务名称包含build variant名称(这些任务由构建类型、产品风格和其他设置组合而成,看起来像debugreleaseUnitTest--任务分别是compileDebugKotlincompileReleaseUnitTestKotlin)。它通常是为普通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'
    }
}
kzmpq1sx

kzmpq1sx2#

来自kotlin-android文档:
Android插件还在Android部分添加了 kotlinOptions 扩展,以设置所有kotlin任务的选项:

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

ncgqoxb03#

不是问题的直接答案,但谷歌在遇到同样的compileKotlin block in build.gradle file throws error “Could not find method compileKotlin() for arguments […]”错误时引导我找到了这个答案。
在我的例子中,问题是由于导入了一个只包含Java代码的代码模块而引起的。修复是为了确保以下内容在Java特定模块的build.gradle中:

apply plugin: 'kotlin-android'
rta7y2nd

rta7y2nd4#

在一些项目中,我刚刚使用了刷新Gradle依赖项并解决了问题:
右键单击项目名称并选择刷新Gradle依赖项

7xzttuei

7xzttuei5#

我知道听起来很奇怪,但我用这个解决方案解决了我的问题。Android Studio建议进行一些改进,如“* 删除显式类型参数 *”,但当我这样做时,我得到了这个错误。
因此,我的建议是请添加您的“显式类型参数",然后重试。
显式类型参数示例:

相关问题