実現したいこと
buildSrcにgradleファイルの共通部分をまとめたktsファイルを作成し、
それを他のgradle.ktsファイルから利用できるようにしたいです。
問題点
kts
1// scripts/common.gradle.kts 2plugins { 3 id("dagger.hilt.android.plugin") 4 id("kotlin-kapt") 5} 6 7android { 8 compileSdkVersion(30) 9} 10 11 12dependencies { 13 implementation("com.google.dagger:hilt-android:2.28-alpha") 14 kapt("com.google.dagger:hilt-android-compiler:2.28-alpha") 15}
以上のようにファイルを作成すると、以下のエラーが発生します。
androidブロックの参照ができないようです。
> Task :buildSrc:compileKotlin FAILED The `kotlin-dsl` plugin applied to project ':buildSrc' enables experimental Kotlin compiler features. For more information see https://docs.gradle.org/6.1.1/userguide/kotlin_dsl.html#sec:kotlin-dsl_plugin e: G:\android projects\MultiModuleApplication\buildSrc\src\main\java\scripts\common.gradle.kts: (6, 1): Expression 'android' cannot be invoked as a function. The function 'invoke()' is not found e: G:\android projects\MultiModuleApplication\buildSrc\src\main\java\scripts\common.gradle.kts: (6, 1): Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: internal val ComPluginGroup.android: ComAndroidPluginGroup defined in gradle.kotlin.dsl.plugins._7ef308fad1fca30796f7bc26f693b5a9 in file PluginSpecBuilders.kt internal val PluginDependenciesSpec.android: PluginDependencySpec defined in gradle.kotlin.dsl.plugins._7ef308fad1fca30796f7bc26f693b5a9 in file PluginSpecBuilders.kt e: G:\android projects\MultiModuleApplication\buildSrc\src\main\java\scripts\common.gradle.kts: (7, 5): Unresolved reference: compileSdkVersion e: G:\android projects\MultiModuleApplication\buildSrc\src\main\java\scripts\common.gradle.kts: (12, 5): Unresolved reference: implementation e: G:\android projects\MultiModuleApplication\buildSrc\src\main\java\scripts\common.gradle.kts: (13, 5): Unresolved reference: kapt
関連する他のファイル
buildSrc/build.gradle.kts
kts
1plugins { 2 `kotlin-dsl` 3 `kotlin-dsl-precompiled-script-plugins` 4} 5 6repositories { 7 jcenter() 8 google() 9} 10 11dependencies { 12 implementation("com.android.tools.build:gradle:4.0.1") 13}
project/build.gradle.kts
buildscript
1 val kotlin_version = "1.4.0" 2 repositories { 3 google() 4 jcenter() 5 } 6 dependencies { 7 classpath("com.android.tools.build:gradle:4.0.1") 8 classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") 9 classpath("com.google.dagger:hilt-android-gradle-plugin:2.28-alpha") 10 // NOTE: Do not place your application dependencies here; they belong 11 // in the individual module build.gradle files 12 } 13} 14 15allprojects { 16 repositories { 17 google() 18 jcenter() 19 } 20}
参考にしているプロジェクト
android10/Android-CleanArchitecture-Kotlin
このプロジェクトでも同様にbuildSrc下にktsファイルを置いて、共通化をしています。
あなたの回答
tips
プレビュー