升级Gradle到7.3.1后生成的AAR文件无.class文件问题求助
解决AGP 7.3.1升级后AAR缺失.class文件的问题
以下是针对性的排查和解决步骤:
检查库模块的混淆/优化配置
确认库模块build.gradle的buildTypes节点中,打包用的构建类型(比如release)是否误开启了minifyEnabled true却未配置合理的混淆规则——AGP 7.3.x的R8优化逻辑有调整,激进的优化可能导致所有class文件被移除。测试阶段可先将minifyEnabled设为false,重新构建AAR验证。
同时检查是否开启了android.buildFeatures.precompileLibraryResources = true,AGP 7.3+对库资源预编译的处理有变动,暂时关闭该配置尝试。清理Gradle缓存
执行命令清理缓存:./gradlew clean # macOS/Linux gradlew clean # Windows手动删除项目根目录的
.gradle文件夹及库模块的build文件夹后,重新构建库模块。缓存残留是这类异常打包问题的常见诱因。排查依赖与编译选项
- 确认库模块的依赖中,是否有需要对外暴露的依赖被误标记为
implementation而非api——虽然这更多导致依赖传递问题,但AGP版本升级后规则变动可能引发连锁反应。 - 检查项目或模块的
gradle.properties中是否新增了android.enableR8.fullMode=true,R8全模式的激进优化可能移除库的class文件,建议关闭该选项。
- 确认库模块的依赖中,是否有需要对外暴露的依赖被误标记为
强制指定AAR打包内容
在库模块的build.gradle中添加配置,确保class文件被包含:android { libraryVariants.all { variant -> variant.outputs.each { output -> // 排除自动生成的R相关class,保留业务class output.packageLibrary.exclude('**/R.class', '**/R$*.class') output.packageLibrary.include('**/*.class') } } }升级AGP到同系列后续版本
7.3.1可能存在已知的打包bug,尝试升级到AGP 7.3.2或更高的7.3.x小版本,这类问题通常会在后续补丁版本中修复。确认模块类型配置
检查库模块build.gradle开头是否为plugins { id 'com.android.library' },避免误配置为应用模块类型。
内容的提问来源于stack exchange,提问作者Rakesh Patil
相关产品推荐
相关产品推荐

