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

Gradle从2.x.x升级至3.1.2后Retrofit相关类无法解析求助

解决Gradle升级至3.1.2后Retrofit2.Callback无法解析的问题

我之前升级Gradle时也踩过类似的依赖传递坑,版本迭代带来的规则变化确实容易让人懵,给你几个针对性的排查和解决步骤:

1. 先确认Android Gradle插件与Gradle版本的匹配性

Gradle 3.1.2必须对应Android Gradle插件3.1.2,这是很多依赖解析问题的根源。打开项目根目录的build.gradle,检查这一行:

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2' // 必须和Gradle版本对应
    }
}

版本不匹配会导致依赖传递逻辑混乱,先把这个基础问题解决。

2. 确认SDK模块的依赖配置正确

你在SDK模块里用api引入Retrofit的做法是对的(api会把依赖传递给上层模块),但可以再核对下依赖代码:

dependencies {
    api "com.squareup.retrofit2:retrofit:2.4.0"
    // 如果项目用到了Converter、CallAdapter这类扩展库,也要用api引入,比如:
    // api "com.squareup.retrofit2:converter-gson:2.4.0"
}

别不小心写成implementation,那样依赖就不会传递到子模块了。

3. 修改子模块引入SDK的方式

你当前用的api project(path: ':sdk', configuration: 'default')是Gradle旧版本的写法,3.x版本里已经不需要指定configuration: 'default',直接改成:

dependencies {
    // 如果子模块需要把SDK的依赖继续传递给更上层,用api;否则用implementation即可
    api project(':sdk')
    // 或者 implementation project(':sdk')
}

default配置在Gradle 3.x中已经被apiElements和runtimeElements替代,指定旧配置会导致依赖传递不完整。

4. 清理Gradle缓存并重新构建

升级后本地缓存可能残留旧的依赖信息,执行以下命令彻底清理:

./gradlew clean build --refresh-dependencies

这个命令会清空缓存并强制重新下载所有依赖,能解决很多莫名其妙的"找不到类"问题。

5. 检查SDK模块的类型配置

确保SDK模块是Android库模块,在它的build.gradle开头有:

apply plugin: 'com.android.library'

如果误写成com.android.application,依赖传递也会失效。

按这些步骤走下来,应该就能解决retrofit2.Callback无法解析的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:58:24