我尝试在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'
}
}
5条答案
按热度按时间jchrr9hc1#
您得到的错误意味着项目中没有
compileKotlin
任务,这是Android项目的预期错误。Android项目中的Kotlin编译任务名称包含build variant名称(这些任务由构建类型、产品风格和其他设置组合而成,看起来像
debug
或releaseUnitTest
--任务分别是compileDebugKotlin
和compileReleaseUnitTestKotlin
)。它通常是为普通Java +Kotlin项目中的main
源集创建的。最有可能的情况是,您希望在项目中配置 * 所有 * Kotlin编译任务,为此,您可以按如下方式应用代码块:
kzmpq1sx2#
来自kotlin-android文档:
Android插件还在Android部分添加了 kotlinOptions 扩展,以设置所有kotlin任务的选项:
ncgqoxb03#
不是问题的直接答案,但谷歌在遇到同样的
compileKotlin block in build.gradle file throws error “Could not find method compileKotlin() for arguments […]”
错误时引导我找到了这个答案。在我的例子中,问题是由于导入了一个只包含Java代码的代码模块而引起的。修复是为了确保以下内容在Java特定模块的
build.gradle
中:rta7y2nd4#
在一些项目中,我刚刚使用了刷新Gradle依赖项并解决了问题:
右键单击项目名称并选择刷新Gradle依赖项。
7xzttuei5#
我知道听起来很奇怪,但我用这个解决方案解决了我的问题。Android Studio建议进行一些改进,如“* 删除显式类型参数 *”,但当我这样做时,我得到了这个错误。
因此,我的建议是请添加您的“显式类型参数",然后重试。
显式类型参数示例: