Flutter项目切换Firestore/Supabase后仍遇:app:mergeDexDebug错误求助
解决Flutter项目
:app:mergeDexDebug编译错误 问题背景
从Cloud Firestore切换到Supabase服务后,项目仍触发:app:mergeDexDebug编译错误,核心报错为path_provider_android和url_launcher_android的classes.jar在dexing阶段出现空指针异常。
pubspec.yaml 依赖配置
dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.2 supabase_flutter: ^2.3.1
android/app/build.gradle 配置
defaultConfig { applicationId "com.example.aumigos_da_vizinhanca" minSdkVersion flutter.minSdkVersion targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName multiDexEnabled true }
完整错误日志
ERROR:C:\MINHAS COISAS SSD\FLUTTER\aumigos_da_vizinhanca\build\path_provider_android\intermediates\runtime_library_classes_jar\debug\classes.jar: D8: java.lang.NullPointerException: Cannot invoke "String.length()" because "<parameter1>" is null ERROR:C:\MINHAS COISAS SSD\FLUTTER\aumigos_da_vizinhanca\build\url_launcher_android\intermediates\runtime_library_classes_jar\debug\classes.jar: D8: java.lang.NullPointerException: Cannot invoke "String.length()" because "<parameter1>" is null FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:mergeDexDebug'. > Could not resolve all files for configuration ':app:debugRuntimeClasspath'. > Failed to transform classes.jar (project :url_launcher_android) to match attributes {artifactType=android-dex, asm-transformed-variant=NONE, com.android.build.api.attributes.AgpVersionAttr=7.3.0, com.android.build.api.attributes.BuildTypeAttr=debug, com.android.build.gradle.internal.attributes.VariantAttr=debug, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=19, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}. > Execution failed for DexingWithClasspathTransform: C:\MINHAS COISAS SSD\FLUTTER\aumigos_da_vizinhanca\build\url_launcher_android\intermediates\runtime_library_classes_jar\debug\classes.jar. > Error while dexing. > Failed to transform classes.jar (project :path_provider_android) to match attributes {artifactType=android-dex, asm-transformed-variant=NONE, com.android.build.api.attributes.AgpVersionAttr=7.3.0, com.android.build.api.attributes.BuildTypeAttr=debug, com.android.build.gradle.internal.attributes.VariantAttr=debug, dexing-enable-desugaring=true, dexing-enable-jacoco-instrumentation=false, dexing-is-debuggable=true, dexing-min-sdk=19, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}. > Execution failed for DexingWithClasspathTransform: C:\MINHAS COISAS SSD\FLUTTER\aumigos_da_vizinhanca\build\path_provider_android\intermediates\runtime_library_classes_jar\debug\classes.jar. > Error while dexing. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 17s Exception: Gradle task assembleDebug failed with exit code 1
已尝试无效操作
在android/app/build.gradle中添加旧版multidex依赖,未解决问题:
dependencies { implementation 'com.android.support:multidex:2.0.1' }
解决方案
按以下步骤逐一排查修复:
清理构建缓存并重建
执行命令彻底清理项目缓存后重新构建:flutter clean flutter pub get cd android && ./gradlew clean cd .. && flutter run更新Flutter及依赖包
升级Flutter到稳定版,同步更新所有依赖:flutter upgrade flutter pub upgrade可通过
flutter pub outdated查看依赖包更新状态,确保path_provider_android和url_launcher_android使用最新兼容版本。调整Android构建配置
- 若项目允许,将
minSdkVersion提升至21及以上:minSdkVersion 21 - 替换旧版multidex依赖为AndroidX版本:
dependencies { implementation 'androidx.multidex:multidex:2.0.1' } - 检查
android/build.gradle中gradle插件版本,确保与当前Flutter版本兼容(可参考Flutter官方文档推荐版本)。
- 若项目允许,将
禁用调试模式下的代码混淆
在android/app/build.gradle的buildTypes块中添加配置:buildTypes { debug { minifyEnabled false shrinkResources false } }检查本地构建环境
通过Android Studio的SDK Manager确认Android SDK Build Tools、NDK等组件为最新兼容版本。
内容的提问来源于stack exchange,提问作者Denis Duarth
相关产品推荐
相关产品推荐

