Java 1.8 Androidプロジェクトで動作するようにKotlinを設定しようとしています。compileKotlin
ブロックを私の_build.gradle
ファイルですが、そうするとエラーが発生します。
発生するエラーは次のとおりです。
エラー:(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'
}
}
取得しているエラーは、プロジェクトにcompileKotlin
タスクがないことを意味し、Androidプロジェクトに期待されています。
AndroidプロジェクトのKotlinコンパイルタスク名には、 ビルドバリアント の名前が含まれます(ビルドタイプ、製品フレーバー、その他の設定から組み合わされ、debug
のようになりますまたはreleaseUnitTest
-タスクはそれぞれcompileDebugKotlin
およびcompileReleaseUnitTestKotlin
です)通常compileKotlin
ソースセットに対して通常作成されるmain
タスクはありません= Java + Kotlinプロジェクト。
最も可能性が高いのは、プロジェクト内のallKotlinコンパイルタスクを構成することです。そのためには、次のようにブロックを適用できます。
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'
}
}
kotlin-Android documentation から:
Androidプラグインは、kotlinOptions拡張子をAndroidセクションに追加して、すべてのkotlinタスクのオプションを設定します。
Android {
kotlinOptions {
jvmTarget = '1.8'
noStdlib = true
}
}