Flutter集成Firebase开发聊天App时遇assembleDebug失败(exit code 1)
Flutter + Firebase聊天App构建报错:Dex方法数超过64K(Multidex问题)
错误日志
> 执行工作项时发生失败 > 执行com.android.build.gradle.internal.tasks.DexMergingWorkAction时失败 > com.android.builder.dexing.DexArchiveMergerException: 合并dex归档文件时出错: .dex文件中的方法引用数量不能超过64K。 请访问https://developer.android.com/tools/building/multidex.html了解解决方法 * 尝试: > 使用--stacktrace选项获取堆栈跟踪。 > 使用--info或--debug选项获取更多日志输出。 > 使用--scan选项获取完整分析信息。 * 获取更多帮助:https://help.gradle.org BUILD FAILED in 41s [!] 应用需要Multidex支持 由于方法数量已超过64k,您的Android应用构建需要Multidex支持。请访问https://docs.flutter.dev/deployment/android#enabling-multidex-support了解更多信息。您可以传递--no-multidex标志跳过Flutter的Multidex支持,采用手动解决方案。 Flutter工具可添加Multidex支持,将生成以下文件: android/app/src/main/java/io/flutter/app/FlutterMultiDexApplication.java 无法在无终端UI的情况下提示 Exception: Gradle task assembleDebug failed with exit code 1
解决方案:启用Multidex支持
方式1:Flutter自动配置
在项目根目录执行命令,工具会自动生成Multidex所需文件并完成Gradle配置:
flutter run --multidex
方式2:手动配置(自定义场景)
1. 修改app级build.gradle
打开android/app/build.gradle,在defaultConfig块中启用Multidex,同时添加依赖:
defaultConfig { // 保留原有配置 multiDexEnabled true } dependencies { // 保留原有依赖 implementation 'androidx.multidex:multidex:2.0.1' }
2. 配置Application类
- 无自定义Application类:修改
AndroidManifest.xml的application标签,指定默认Multidex类:<application android:name="io.flutter.app.FlutterMultiDexApplication" <!-- 保留原有属性 --> > <!-- 保留原有内容 --> </application> - 有自定义Application类:让类继承
FlutterMultiDexApplication,或在attachBaseContext中初始化Multidex:
同步修改import androidx.multidex.MultiDex; import io.flutter.app.FlutterApplication; public class MyApplication extends FlutterApplication { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } }AndroidManifest.xml的android:name为自定义类名。
3. 清理并重构项目
flutter clean flutter run
内容的提问来源于stack exchange,提问作者MilanLiz
相关产品推荐
相关产品推荐

