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

Android Studio升级后Release签名APK的Proguard构建失败问题

解决Android Studio升级后ProGuard Release打包失败问题

我之前升级AS和Gradle版本后也碰到过几乎一模一样的ProGuard报错,结合你的配置和日志信息,给你几个针对性的解决步骤:

1. 优先升级Firebase依赖版本

你的Firebase依赖停留在11.8.0,这个版本和你升级后的Android Gradle Plugin 3.1.2(对应Gradle 4.4)兼容性很差。旧版本的Firebase库和新的构建工具链会出现类引用不匹配的问题,直接导致ProGuard解析失败。

建议把所有Firebase相关依赖统一升级到兼容的版本,同时更新Google Services插件:

项目根目录的build.gradle:

buildscript {
    dependencies {
        // 对应Firebase 15.x版本的插件
        classpath 'com.google.gms:google-services:4.0.1'
    }
}

App模块的build.gradle:

implementation 'com.google.firebase:firebase-messaging:15.0.2'
implementation 'com.google.firebase:firebase-appindexing:15.0.2'
implementation 'com.google.firebase:firebase-core:15.0.2'

2. 补全ProGuard规则

你添加-dontwarn没效果,大概率是没覆盖到具体的未解析类或包。结合日志里的警告,需要给Firebase、Multidex以及你自己的模块添加对应的规则:

在proguard-rules.pro中添加:

// Firebase相关规则
-keep class com.google.firebase.** { *; }
-keep class com.google.android.gms.** { *; }
-dontwarn com.google.firebase.**
-dontwarn com.google.android.gms.**

// Multidex规则
-keep class android.support.multidex.** { *; }

// 保护你自己的quayosolution模块(替换成实际包名)
-keep class com.xxx.quayosolution.** { *; }
-keep interface com.xxx.quayosolution.** { *; }

如果之后还是有特定类的警告,可以把具体类的-dontwarn加上,比如日志里提示某个com.example.xxx类未解析,就加-dontwarn com.example.xxx.**。

3. 清理Gradle缓存并重建

升级后Gradle缓存可能残留旧版本的类文件,导致解析冲突。执行以下命令清理缓存:

# Mac/Linux
./gradlew clean

# Windows
gradlew clean

然后重新执行Release构建任务。

4. 检查依赖冲突

用命令查看App模块的依赖树,排查是否有重复或冲突的依赖:

./gradlew app:dependencies

如果发现某个库有多个版本,在依赖声明里用exclude排除掉旧版本,比如:

implementation('some.library:xxx:1.0.0') {
    exclude group: 'com.android.support', module: 'support-v4'
}

为什么关闭minifyEnabled能打包?

当你把minifyEnabled设为false时,ProGuard不会执行类压缩、混淆和优化操作,自然不会触发那些类引用未解析的警告,但代价是APK体积会大幅增加——这也是为什么我们必须解决ProGuard问题的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:25:47