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

升级Gradle 7.3.1后Android项目无法识别自定义库类的问题

问题排查与解决方案

核心问题:发布的Maven库不包含实际代码

你的自定义库发布配置中,注释掉了from components.debug,这会导致发布到MavenLocal的只是一个空的POM文件,没有包含库的class文件或AAR包,所以主项目虽然能找到依赖,但无法识别库内的类。

具体修复步骤

1. 修复Maven发布配置

修改库的build.gradle中publishing块的配置,取消注释from components.debug(或根据需要改为components.release),确保发布的是包含代码的组件:

afterEvaluate {
    publishing {
        publications {
            release(MavenPublication) {
                // 启用这行,指定要发布的组件(debug或release)
                from components.debug
                groupId = 'com.inmap.MapFragment'
                artifactId = 'debug'
                version = '1.0'
            }
        }
    }
}

2. 清理重复的插件应用

你的build.gradle开头同时用了plugins块和apply plugin重复应用插件,Gradle 7+推荐统一用plugins块,删除重复的apply plugin:

// 保留这部分即可,删除下面的apply plugin行
plugins {
    id 'maven-publish'
    id 'com.android.library'
}

// 删除以下两行重复代码
// apply plugin: 'maven-publish'
// apply plugin: 'com.android.library'

3. 重新发布库到MavenLocal

执行以下Gradle任务:

  • 先清理旧的发布产物:./gradlew clean
  • 发布到本地仓库:./gradlew publishToMavenLocal

4. 主项目同步依赖并清理缓存

  • 在Android Studio中点击File → Sync Project with Gradle Files
  • 执行./gradlew clean build重新构建主项目
  • 如果还是有问题,尝试删除主项目根目录下的.gradle文件夹,然后重新同步

额外检查点

  • 确认主项目的依赖引用是否正确,groupId、artifactId、version要和库的发布配置完全一致:
    implementation 'com.inmap.MapFragment:debug:1.0'
    
  • 检查库的build variant是否和主项目匹配,如果主项目用的是release变体,库也应该发布release组件(from components.release)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 18:22:43