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

Gradle/Maven/Android:通过Maven引入库时找不到库私有依赖问题

问题原因
  • 核心问题是你发布AAR时生成的POM文件缺失safetynet依赖声明:你当前的发布配置仅遍历configurations.api下的依赖写入POM,用implementation声明的私有依赖不会被加入到POM中。Maven依赖机制依赖POM文件感知传递依赖,上层App构建时自然不会拉取safetynet依赖,运行时就会出现类找不到的崩溃。
  • 本地模块依赖正常是因为Gradle处理本地项目依赖时,会自动将子模块的implementation依赖加入到宿主App的运行时classpath,不需要依赖POM文件。
  • 你之前改成api仍无效大概率是改完后没有清理本地Maven缓存的旧版本AAR/POM,App拉取的还是之前错误的旧版本,即便开启transitive=true也没有可传递的依赖条目可以加载。
解决方案

按如下步骤修改即可:

  1. 替换你的Maven发布配置,使用AGP官方提供的components.release自动生成AAR和POM,无需手动处理依赖,避免漏写:
afterEvaluate {
    publishing {
        publications {
            release(MavenPublication) {
                groupId 'com.myapplication'
                artifactId 'library'
                version '1.0.3'
                // 移除原有手动指定artifact、手动生成POM的逻辑,替换为下面这行
                from components.release
            }
        }
        repositories {
            mavenLocal()
        }
    }
}
  1. 清理本地Maven缓存的旧版本library包:进入本地Maven仓库默认路径~/.m2/repository/com/myapplication/library/,删除1.0.3文件夹下的所有内容。
  2. 重新执行library模块的publishReleasePublicationToMavenLocal任务,生成新的AAR和正确的POM文件。
  3. 上层App执行Gradle同步后重新运行即可,无需修改App侧的依赖声明,也不需要上层手动引入safetynet依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:36:03