在#NowInAndroid示例应用程序中,来自所包含模块的Kotlin文件NiaBuildType
被导入到应用程序模块Build.gradle.kts文件中.
###build.gradle.kts (:app)
import com.google.samples.apps.nowinandroid.NiaBuildType
我试图达到几乎相同的结果,但每次我都得到了Unresolved reference: au
个错误.
我在包含的版本中的包 struct 与我的应用程序模块相同,以启用可传递的依赖关系.
与NIA应用程序不同,我在子模块中没有约定插件(约定模块包括在构建逻辑模块中,而构建逻辑模块本身使用pluginmanager{}
包含在项目中),并且只有一个包含buildplugin
模块.
以下是我包含的模块buildplugin
中的文件:
package au.com.myproject
object AppVersion {
const val versionCode = 1
const val versionName = "1.0"
}
以下是该项目的settings.gradle.kts
个文件:
pluginManagement {
includeBuild("buildplugin")
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
这是我的buildplugin
模块build.gradle.kts
文件:
plugins {
`kotlin-dsl`
}
group = "au.com.myproject.buildplugin"
repositories {
google()
mavenCentral()
}
dependencies {
compileOnly(gradleApi())
implementation("com.android.tools.build:gradle:8.1.0")
implementation(kotlin("gradle-plugin"))
}
这是我在应用程序模块build.gradle.kts
中的用法:
import au.com.myproject.AppVersion
plugins {
...
}
android {
namespace = "au.com.myproject"
compileSdk = 34
defaultConfig {
applicationId = "au.com.myproject.pai"
minSdk = 24
//noinspection OldTargetApi
targetSdk = 33
versionCode = AppVersion.versionCode
versionName = AppVersion.versionName
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
...
如果我使用buildSrc
而不是复合构建,则可以毫无问题地导入对象.
我不确定我错过了什么,几天来我一直在用头撞墙,现在正在try 不同的方法.