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

Flutter Firebase Android端构建失败求助:D8空指针及Dexing错误

构建Flutter Firebase项目时的Dexing报错问题

报错信息

D8: java.lang.NullPointerException: Cannot invoke "String.length()" because "<parameter1>" is null
Execution failed for DexingNoClasspathTransform: /home/john/Music/flutter_application/build/image_picker_android/intermediates/runtime_library_classes_dir/debug.
     > Error while dexing.

当前环境配置

Flutter 3.24.0 • channel stable • https://github.com/flutter/flutter.git
Java version: openjdk 21.0.4 2024-07-16
Gradle version 8.5
Firebase version 13.15.2

build.gradle配置(defaultConfig部分)

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId = "com.example.flutter_application"
    // You can update the following values to match your application needs.
    // For more information, see: https://flutter.dev/to/review-gradle-config.
    minSdk = 24
    targetSdk = flutter.targetSdkVersion
    versionCode = flutter.versionCode
    versionName = flutter.versionName
    multiDexEnabled true

}

解决方法

  • 切换Java版本到17:Gradle 8.5与Java 21的组合可能和部分Flutter插件存在兼容性问题,换成OpenJDK 17可规避这类空指针导致的dexing错误。
  • 更新image_picker插件:报错关联image_picker_android模块,执行flutter pub upgrade image_picker升级到最新稳定版,确保插件适配当前环境。
  • 清理构建缓存:执行以下命令彻底清理缓存后重新构建:
    flutter clean
    rm -rf android/.gradle
    rm -rf ~/.gradle/caches
    flutter pub get
    flutter run
    
  • 固定Gradle使用的Java版本:在android/gradle.properties文件中添加或修改配置,指定Java 17的路径:
    org.gradle.java.home=/path/to/your/openjdk17
    
  • 检查Firebase依赖兼容性:确认pubspec.yaml中所有Firebase相关插件版本与Flutter 3.24.0兼容,可尝试升级firebase_core等核心依赖到最新适配版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 12:49:56