Android build.gradle文件中的compileKotlin块抛出错误“;找不到参数[…]的方法compileKotlin();
我正在尝试将Kotlin配置为在我的Android项目中使用Java1.8。我已经尝试在我的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” 没有这个区块,项目运行良好。我错
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{…}
最佳答案!