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

Android 12及以下Release版本CoreComponentFactory与Preconditions异常解决

解决方案:Android 12及以下Release包混淆引发的运行时异常修复

问题根源

Debug包正常、关闭isMinifyEnabled后恢复正常,说明是代码混淆过程中误移除/混淆了必要的系统及第三方依赖类:

  • androidx.core.app.CoreComponentFactory被处理导致AppComponentFactory实例化失败
  • com.google.android.gms.common.internal.Preconditions被处理导致Firebase初始化流程中断

具体修复步骤

1. 补充ProGuard保留规则

在proguard-rules.pro文件中添加以下规则,强制保留相关类不被混淆或移除:

# 保留AndroidX核心组件工厂类,解决AppComponentFactory实例化异常
-keep class androidx.core.app.CoreComponentFactory { *; }

# 保留GMS核心校验类,解决FirebaseInitProvider初始化异常
-keep class com.google.android.gms.common.internal.Preconditions { *; }

# 可选:追加Firebase初始化组件保留规则,避免其他潜在问题
-keep class com.google.firebase.provider.FirebaseInitProvider { *; }
-keep class com.google.android.gms.** { *; }

2. 检查依赖配置正确性

  • 确认libs.versions.toml中androidx-core和firebase-bom(或单独Firebase依赖)的版本兼容Android 12及以下系统
  • 确保:app模块build.gradle中依赖引入无误,建议使用Firebase BOM统一管理版本,避免版本冲突:
implementation platform(libs.firebase.bom)
implementation 'com.google.firebase:firebase-analytics'
# 按需添加其他Firebase依赖

3. 适配R8混淆(Android Gradle Plugin 3.4+默认启用)

如果项目使用R8作为默认混淆工具,确保Gradle配置中正确加载自定义规则:

android {
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

验证方式

修改配置后重新构建Release包,在Android 12及以下设备上测试应用启动,确认两类运行时异常不再触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 22:17:07