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

Flutter 3.24打包Release APK遇R8缺失类错误,Debug正常

Flutter 3.24 Release打包R8缺失类报错解决方案

解决步骤

1. 导入自动生成的缺失规则

报错提示中提到的missing_rules.txt文件位于项目根目录/build/app/outputs/mapping/release/路径下,打开该文件,将所有内容复制到android/app/proguard-rules.pro文件的末尾,然后重新执行Release打包。

2. 手动添加Keep规则

如果自动导入规则无效,直接在proguard-rules.pro中添加以下规则,强制R8忽略缺失类的警告:

# 忽略conscrypt相关缺失类
-dontwarn com.android.org.conscrypt.SSLParametersImpl
-dontwarn org.apache.harmony.xnet.provider.jsse.SSLParametersImpl

# 忽略javax.annotation.Nullable缺失类
-dontwarn javax.annotation.Nullable

3. 排查并修复依赖冲突

Flutter 3.24升级后可能引发okhttp或conscrypt相关依赖版本不兼容,可在android/build.gradle中强制指定兼容版本:

allprojects {
    repositories {
        // ... 其他仓库配置
    }
    configurations.all {
        // 强制指定okhttp版本
        resolutionStrategy.force 'com.squareup.okhttp3:okhttp:4.12.0'
        // 强制指定conscrypt版本
        resolutionStrategy.force 'org.conscrypt:conscrypt-android:2.5.2'
    }
}

同时检查项目中使用的http类依赖(如dio、http包),确保版本与Flutter 3.24兼容。

4. 调整R8配置

在android/app/build.gradle的release构建类型中,确保正确配置R8相关参数:

buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        // 引入Flutter官方提供的ProGuard规则
        proguardFile "${flutterRoot}/packages/flutter_tools/gradle/flutter_proguard_rules.pro"
    }
}

完成上述操作后,执行flutter clean再重新打包Release版本即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 17:21:10