You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android App模块build.gradle.kts导入复合模块类遇未解析引用错误

解决复合构建中无法导入buildplugin模块类的问题

问题原因

使用includeBuild的复合构建模式时,主项目的构建脚本默认不会自动将buildplugin模块的编译产物加入类路径,而buildSrc是Gradle默认自动纳入构建脚本类路径的,因此后者能正常导入目标类。

解决步骤

1. 检查buildplugin模块的文件路径

确保AppVersion.kt的路径与包名严格匹配:

buildplugin/src/main/kotlin/au/com/myproject/AppVersion.kt

2. 修改buildplugin模块的build.gradle.kts

添加java-library插件并配置基础信息,让模块生成可被依赖的库产物:

plugins {
    `kotlin-dsl`
    `java-library` // 启用库模式,支持产物被外部依赖
}

group = "au.com.myproject.buildplugin"
version = "1.0" // 定义版本号,用于后续依赖引用

repositories {
    google()
    mavenCentral()
}

dependencies {
    compileOnly(gradleApi())
    implementation("com.android.tools.build:gradle:8.1.0")
    implementation(kotlin("gradle-plugin"))
}

// 适配Gradle 8.x的Java兼容性要求
java {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}

3. 在主项目根build.gradle.kts中添加buildscript依赖

将buildplugin模块加入主项目的构建脚本类路径:

buildscript {
    dependencies {
        classpath("au.com.myproject.buildplugin:buildplugin:1.0")
    }
}

// 保留原有其他配置...

4. 重新同步Gradle

完成上述修改后,执行Gradle同步操作,此时app模块的build.gradle.kts即可正常导入au.com.myproject.AppVersion并使用其常量。

额外说明

如果后续需要将buildplugin扩展为Gradle插件,可基于当前配置进一步改造;仅共享常量的场景下,上述配置已足够解决问题。

内容的提问来源于stack exchange,提问作者Amir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 15:11:23