You need to enable JavaScript to run this app. Gradle构建Android应用时报错“已配置依赖功能但未设置包ID”原因咨询
优惠活动
大模型
产品
解决方案
定价
更多

Gradle构建Android应用时报错“已配置依赖功能但未设置包ID”原因咨询

报错根因

本次构建报错的核心是模块插件类型配置错位:

  • 被主应用依赖的network模块错误使用了com.android.application插件,该插件仅面向可独立打包安装的应用入口模块,不适用于被其他模块依赖的共享代码模块。
  • Android Gradle Plugin在识别到被依赖模块的application插件配置时,会将其误判定为动态特性(Dynamic Feature)类型的依赖项,触发动态特性模块的强制校验逻辑:动态特性依赖必须配置关联的基础包ID,但当前配置不存在对应设置,最终抛出Dependent features configured but no package ID was set.错误。
解决方案

按以下步骤修正配置即可解决报错:

  • 修正network模块的插件声明
    打开network模块的build.gradle文件,将错误的application插件替换为Library模块对应的插件:
    原错误插件配置:
    plugins {
        id 'com.android.application'
        id 'kotlin-android'
        id 'dagger.hilt.android.plugin'
        id 'kotlin-kapt'
        id 'kotlin-parcelize'
    }
    
    修正后插件配置:
    plugins {
        id 'com.android.library'
        id 'kotlin-android'
        id 'dagger.hilt.android.plugin'
        id 'kotlin-kapt'
        id 'kotlin-parcelize'
    }
    
  • 清理network模块的冗余配置
    删除android.defaultConfig块下的applicationId配置:Library模块没有独立的应用ID权限,最终运行时的包名完全由主应用模块统一指定,单独给Library设置applicationId属于无效配置,也是触发校验异常的诱因之一。
    修正后的defaultConfig示例:
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    
  • 执行缓存清理后重新构建
    完成配置修正后,先执行项目的Clean Project操作清除旧的构建缓存,再重新触发构建流程,即可正常完成打包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 09:06:03