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

Flutter Downloader插件在Android设备的Release APK中无法运行怎么办?

Flutter Downloader在Android Release APK中无法运行的解决方案

以下是针对该问题的常见排查和解决步骤:

  • 配置混淆规则
    Release模式默认开启代码混淆,Flutter Downloader的核心逻辑被混淆后会失效。在android/app/proguard-rules.pro中添加规则:

    -keep class vn.hunghd.flutterdownloader.** { *; }
    -keep class androidx.work.** { *; }
    

    同时确保android/app/build.gradle中启用混淆并引用该规则:

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    
  • 补全权限声明
    虽然插件会处理权限逻辑,但Release包需要明确声明必要权限。在AndroidManifest.xml中添加:

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <!-- Android 13+ 需添加 -->
    

    注意在代码中动态申请Android 6.0+的存储权限和Android 13+的通知权限。

  • 修复WorkManager初始化
    Flutter Downloader依赖WorkManager处理后台下载任务,Release模式下可能需要手动初始化:

    1. 在AndroidManifest.xml中移除默认的WorkManager初始化器:
      <provider
          android:name="androidx.startup.InitializationProvider"
          android:authorities="${applicationId}.androidx-startup"
          android:exported="false"
          tools:node="merge">
          <meta-data
              android:name="androidx.work.WorkManagerInitializer"
              android:value="androidx.startup"
              tools:node="remove" />
      </provider>
      
    2. 自定义Application类初始化WorkManager:
      class MyApp : FlutterApplication() {
          override fun onCreate() {
              super.onCreate()
              WorkManager.initialize(this, Configuration.Builder().build())
          }
      }
      
    3. 在AndroidManifest.xml的application标签中指定自定义类:android:name=".MyApp"
  • 检查签名与构建配置
    确保Release APK使用正确的签名文件,在android/app/build.gradle中配置签名信息:

    signingConfigs {
        release {
            keyAlias '你的密钥别名'
            keyPassword '你的密钥密码'
            storeFile file('你的密钥库文件.jks')
            storePassword '你的密钥库密码'
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            // 其他配置项
        }
    }
    
  • 更新插件版本
    旧版本的Flutter Downloader可能存在Release模式下的已知bug,建议在pubspec.yaml中使用最新稳定版:

    flutter_downloader: ^最新版本号
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 20:10:36