2017-05-23 2 views
11

AndroidプロジェクトでJava 1.8で動作するようにKotlinを設定しようとしています。私はbuild.gradleファイルの末尾にcompileKotlinブロックを追加しようとしましたが、そうするとエラーになります。build.gradleファイル内のcompileKotlinブロックがエラーをスローする「引数のメソッドcompileKotlin()が見つかりませんでした」[...] "

発生したエラーは以下の通りです:

Error:(38, 0) Could not find method compileKotlin() for arguments [[email protected]] on project ':core' of type org.gradle.api.Project.

プロジェクトは、このブロックせずに細かい動作します。私は何が欠けていますか?ここでは、完全な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' 
    } 
} 

答えて

12

あなたが取得しているエラーが何compileKotlinタスクがプロジェクトにありませんことを意味し、それはAndroidのプロジェクトのために期待されます。 Androidのプロジェクトで

Kotlinのコンパイルタスク名は( - タスクはそれぞれcompileDebugKotlincompileReleaseUnitTestKotlinているものは、ビルドの種類、製品の風味や他の設定から組み合わせてdebugまたはreleaseUnitTestように見えている)build variant名が含まれています。通常は通常のJava + Kotlinプロジェクトでmainソースセット用に作成されるcompileKotlinタスクはありません。

おそらく、あなたはプロジェクトにすべて 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' 
    } 
} 
+1

を、私はcompileKotlinがすべてに適用されたと思いました変種を作るが明らかにそうではない。ありがとう! – SolveSoul

+0

うまく動作し、その作業をファイルの最後に置いたとき:D –

関連する問題