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

已在根项目应用插件仍无法访问子模块插件,报Unresolved reference: android

问题解决:子模块中"Unresolved reference: android"错误

问题原因

你对根项目插件应用的理解有误——在根项目build.gradle中用apply true应用的插件,只会作用于根项目本身,不会自动传递给所有子模块。Android相关的插件(android.application或android.library)需要在对应的子模块中明确应用,才能让子模块识别android配置块。

看你的根项目配置:

plugins {
    alias(libs.plugins.android.application) apply false
    alias(libs.plugins.jetbrains.kotlin.android) apply true
    alias(libs.plugins.android.library) apply true
}

这里android.library和kotlin.android插件是给根项目用的,但根项目不是Android模块,完全不需要这些插件;而android.application设为apply false只是声明可用,并没有实际应用到任何模块。

正确配置方式

1. 修改根项目build.gradle

把Android相关插件都设为apply false,只声明它们在项目中可用,不直接应用到根项目:

plugins {
    alias(libs.plugins.android.application) apply false
    alias(libs.plugins.jetbrains.kotlin.android) apply false
    alias(libs.plugins.android.library) apply false
}

2. 修改子模块module2的build.gradle

根据module2的类型(如果是库模块就用android.library,如果是应用模块就换成android.application),在顶部的plugins块中应用对应的插件,同时加上kotlin.android插件:

plugins {
    alias(libs.plugins.android.library) // 应用模块请替换为alias(libs.plugins.android.application)
    alias(libs.plugins.jetbrains.kotlin.android)
}

android {
    namespace = "com.example.module2"
    compileSdk = 34

    defaultConfig {
        minSdk = 24

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles("consumer-rules.pro")
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

dependencies {
    implementation(libs.androidx.core.ktx)
    implementation(libs.androidx.appcompat)
    implementation(libs.material)
    testImplementation(libs.junit)
    androidTestImplementation(libs.androidx.junit)
    androidTestImplementation(libs.androidx.espresso.core)
}

补充说明

  • 根项目的build.gradle主要用来管理项目级的依赖、仓库配置和插件声明(apply false),不需要应用Android相关插件。
  • 每个Android子模块(应用或库)都必须单独应用对应的Android插件,这样Gradle才能识别该模块为Android模块,解析android配置块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:22:35