You need to enable JavaScript to run this app. 开启R8/ProGuard时Debug构建正常,生成签名APK失败,已配置okhttp/retrofit规则
优惠活动
大模型
产品
解决方案
定价
更多

开启R8/ProGuard时Debug构建正常,生成签名APK失败,已配置okhttp/retrofit规则

构建失败根因定位

核心错误触发逻辑

  • 你在根目录build.gradle中手动强制指定了R8版本为2.1.75,该版本存在已知兼容性bug,处理OkHttp 4.7.2的ConscryptPlatform伴生对象的desugaring逻辑时,会触发未定义寄存器的编译异常
  • 手动覆盖AGP内置的匹配R8版本,打破了AGP与R8的官方适配关系,是本次构建失败的根本原因

非核心日志说明

以下日志不影响构建,无需额外处理:

  • R8: Ignoring option: -optimizations、R8: Ignoring option: -optimizationpasses:R8 2.x版本开始不再支持旧版ProGuard的优化参数,属于正常提示
  • Type org.conscrypt.Conscrypt was not found:该类属于可选依赖,你已通过-dontwarn org.conscrypt.**规则抑制警告,不属于失败原因

修复步骤

1. 移除手动指定的R8依赖

打开根目录build.gradle的buildscript块,删除以下配置:

  • 仓库配置中的maven { url "http://storage.googleapis.com/r8-releases/raw/master" }
  • 依赖配置中的classpath 'com.android.tools:r8:2.1.75'
    保留AGP 4.1.2内置的默认R8版本即可,无需手动指定。

2. 清理冗余ProGuard规则

打开app模块下的proguard-rules.pro,删除以下冗余规则:

  • -dontwarn okhttp3.internal.platform.**
    该规则与OkHttp官方混淆规则冲突,会导致R8处理内部平台类时出现异常,其余已配置的OkHttp、Retrofit规则保留即可。
  • 现有配置的-dontobfuscate仅关闭代码混淆功能,不影响R8的收缩逻辑,无需修改

可选兼容方案

若修复后仍有构建问题,可在gradle.properties中临时添加android.enableR8.fullMode=false关闭R8全模式,验证是否为全模式兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.06 13:36:03