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

Flutter添加Firebase依赖后执行flutter run出现64K方法超限错误如何解决

问题本质

Android平台单个dex文件最多只能容纳65536个方法引用,引入Firebase等重型依赖后项目总方法数超过该阈值,就会触发构建失败。

解决方案

方案1:启用Multidex(通用解法,所有场景适用)

若minSdkVersion ≥ 21(即最低支持Android 5.0及以上)

仅需修改android/app/build.gradle配置即可:

android {
    defaultConfig {
        // 保留原有其他配置
        minSdkVersion 21
        multiDexEnabled true // 新增这一行配置
    }
}

修改完成后重新执行flutter run即可正常构建。

若minSdkVersion < 21

需要额外添加依赖并修改Application配置:

  • 同样先在android/app/build.gradle的defaultConfig块添加multiDexEnabled true
  • 在同文件的dependencies块添加multidex依赖:
dependencies {
    // 保留原有其他依赖
    implementation "androidx.multidex:multidex:2.0.1"
}
  • 修改Application配置:
    • 若项目没有自定义Application类,打开android/app/src/main/AndroidManifest.xml,修改标签属性:
    <application
        android:name="androidx.multidex.MultiDexApplication"
        <!-- 保留其他原有属性 -->
        >
        <!-- 其他原有配置 -->
    </application>
    
    • 若项目已有自定义Application类,可让自定义类继承MultiDexApplication,或在自定义类的attachBaseContext方法中调用MultiDex.install(this)完成初始化。

方案2:代码压缩优化(可选,可减少包体积同时规避64K问题)

开启代码混淆和无用资源剔除,减少最终打包的方法总数:
修改android/app/build.gradle的buildTypes配置:

buildTypes {
    release {
        // 保留原有其他配置
        minifyEnabled true // 开启代码压缩,剔除无用代码
        shrinkResources true // 开启无用资源剔除
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

该方案仅对release包生效,debug模式下默认不会开启压缩,所以如果debug模式也出现64K报错,还是需要先启用Multidex。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:27:01