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

Flutter调试模式正常,发布模式异常及Gradle相关报错求助

解决Flutter发布模式下FilePicker插件的IllegalAccessError问题

这个错误是因为发布模式下的代码混淆或依赖版本不兼容,导致FilePicker插件的内部生命周期观察者无法正常访问AndroidX Lifecycle接口。下面是一步步的解决方案:

  • 升级FilePicker插件到最新稳定版
    旧版本插件可能存在AndroidX兼容性问题。打开你的pubspec.yaml,找到file_picker依赖项,更新到pub.dev上的最新稳定版本,然后执行:

    flutter pub get
    
  • 添加ProGuard混淆规则
    发布模式的代码混淆会误处理插件相关类,引发访问权限问题。在android/app/proguard-rules.pro文件中添加以下规则:

    # 保留FilePicker插件的所有类与方法
    -keep class com.mr.flutter.plugin.filepicker.** { *; }
    # 保留AndroidX Lifecycle相关类
    -keep class androidx.lifecycle.** { *; }
    

    若还未启用ProGuard,确保在android/app/build.gradle的release配置中开启:

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    
  • 确认AndroidX配置正确
    保证项目已完全迁移到AndroidX,检查android/gradle.properties文件中是否包含以下配置:

    android.useAndroidX=true
    android.enableJetifier=true
    

    没有的话直接添加,这会自动将第三方依赖迁移到AndroidX版本。

  • 调整Gradle与AGP版本兼容性
    你当前使用的AGP 4.0.0 + Gradle 6.1.1组合可能存在兼容性问题,建议换成更稳定的版本组合:

    1. 修改android/build.gradle中的AGP版本:
      classpath 'com.android.tools.build:gradle:4.2.2'
      
    2. 修改gradle/wrapper/gradle-wrapper.properties中的Gradle版本:
      distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
      
  • 清理并重建项目
    最后执行以下命令清理缓存,重新构建发布版本:

    flutter clean
    flutter pub get
    cd android && ./gradlew clean && cd ..
    flutter run --release
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 21:32:52