Gradle Android引入Jitpack自定义库时报Class not resolved问题求助
排查步骤
- 核对Jitpack构建产物:打开对应版本的Jitpack构建记录,查看Build Artifacts区块,确认是否存在
.aar或.jar格式的产出文件,如果只有日志、pom文件没有二进制包,即可定位为打包环节异常。 - 本地校验打包能力:在库项目根目录执行
./gradlew assembleRelease(Windows环境执行gradlew.bat assembleRelease),查看library模块/build/outputs/aar/或jar指定输出目录下是否有正常生成二进制包,如果本地打包失败,优先修复本地打包配置,无需排查Jitpack环境。 - 核对依赖与仓库配置:确认主项目的依赖声明格式为
implementation 'com.github.你的用户名:你的仓库名:版本号',无拼写错误;同时确认主项目settings.gradle中已配置Jitpack仓库地址:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { maven { url 'https://jitpack.io' } // 其他仓库配置 } }
- 排查Gradle缓存异常:执行
./gradlew clean build --refresh-dependencies强制刷新依赖,再检查External Libraries目录是否存在对应库。 - 校验库模块插件配置:确认库模块
build.gradle引入的是正确插件,Android库需要引入com.android.library,纯Java/Kotlin库需要引入java-library,如果错误引入com.android.application插件,不会生成可被依赖的库包。
常见解决方案
- 修复打包无产物问题:如果是Android库模块,确认
build.gradle中打包配置未过滤公开类,若开启混淆需添加对应keep规则:
android { // 其他基础配置 buildTypes { release { minifyEnabled false // 开启混淆时需确认keep所有对外暴露的类和方法 // 其他构建配置 } } }
- 适配Jitpack构建规则:在库项目根目录添加
jitpack.yml文件,指定编译环境和打包任务,示例配置:
jdk: - openjdk11 install: - ./gradlew :你的库模块名:publishToMavenLocal - find . -name "*.aar"
- 多模块仓库适配:如果发布的是多模块仓库,依赖声明需要补全子模块名,格式为
implementation 'com.github.用户名.仓库名:子模块名:版本号',漏写子模块名会拉取到空依赖包。 - 校验类访问权限:库内对外暴露的类和方法必须声明为
public,默认包权限、private权限的类外部无法正常引用。
内容的提问来源于stack exchange,提问作者Mohit Dholakia
相关产品推荐
相关产品推荐

