【发布时间】:2022-01-20 17:22:59
【问题描述】:
在一个多模块项目上工作,我有以下设置:-
- android 工作室 = 4.1.3
- AGP = "4.1.3"
- kotlin gradle 插件 = "1.4.32"
- 对我的所有 gradle 构建文件使用 gradle.kts
在我的(应用程序)模块 build.gradle.kts 中,我启用了 DataBinding 和 ViewBinding,一切都很好:-
android{
/* compileSdkVersion, buildToolsVersion etc...*/
buildFeatures {
dataBinding = true
viewBinding = true
}
}
我在 buildSrc 目录中使用了一个常见的 Dependencies.kt 类,将依赖项注入到模块中,同时在我的 buildSrc 目录中使用 Plugins.kt 类来提供诸如“com.android.application”和“kapt”等插件。 .. 到所有模块。
在我的:modules:rxandroid,build.gradle.kts 如下:
plugins {
/* defined in Plugins.kt*/
androidLibrary()
kotlinAndroid()
kotlinKapt()
}
android {
compileSdkVersion(AndroidSDK.compileSdk)
buildToolsVersion(AndroidSDK.buildTools)
defaultConfig {
minSdkVersion(DefaultConfig.minSdk)
targetSdkVersion(DefaultConfig.targetSdk)
}
/*
compilation error kicks in here, if the below block is removed eveyrthing works fine
but of ocurs i can't used either ViewBinding or DataBinding
*/
buildFeatures {
dataBinding = true
viewBinding = true
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
// For Kotlin projects
kotlinOptions {
jvmTarget = "1.8"
}
}
dependencies {
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
testImplementation(TestLibs.junit)
/* defined in Dependencies.kt*/
androidTestImplementation(TestLibs.runner)
androidTestImplementation(TestLibs.espresso)
implementation (KotlinLibs.kotlin_lib)
implementation (KotlinLibs.kotlin_coroutines_core)
implementation (KotlinLibs.kotlin_coroutine_android)
implementation (KotlinLibs.kotlin_viewmodel_ktx)
implementation (AndroidX.android_app_compat)
implementation (AndroidX.android_constrain_layout)
implementation (AndroidX.android_recyclerview)
implementation (AndroidX.android_lifecycle_extensions)
implementation (AndroidX.android_core_ktx)
implementation (AndroidX.lifecycle_runtime_ktx)
...
}
在构建项目时,控制台日志中会出现以下错误消息:
Unresolved reference: buildFeatures
以及详细截图:-
【问题讨论】:
-
我在使用 mlModelBinding 构建功能时遇到了同样的问题
标签: android kotlin gradle gradle-kts