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

Flutter http库在release构建版本下无法正常使用的问题

Flutter Release模式http库无法访问网络解决方案

问题背景

debug模式下所有功能运行正常,但打包生成release构建版本后,Flutter的http库无法正常工作。已在AndroidManifest文件中添加了互联网权限,使用的Flutter版本为2.5.0,http库版本为0.13.3,新建空白项目测试也可复现该问题。

排查与解决步骤

  • 首先检查安卓系统明文流量限制规则:安卓9(API Level 28)及以上系统默认禁止应用使用HTTP明文流量,debug模式默认豁免明文限制,release模式会严格遵循系统规则,若你的请求地址为HTTP而非HTTPS协议,会直接被系统拦截。
    解决方法:在android/app/src/main/AndroidManifest.xml的<application>标签中添加明文流量许可属性:
    android:usesCleartextTraffic="true"
    
    配置示例:
    <application
        android:name="io.flutter.app.FlutterApplication"
        android:label="应用名称"
        android:icon="@mipmap/ic_launcher"
        android:usesCleartextTraffic="true"> <!-- 新增该行配置 -->
    
  • 其次排查Release版本代码压缩混淆问题:Flutter 2.5.0版本打包release默认开启R8代码压缩,http库依赖的类如果被误裁剪会导致请求逻辑异常。
    解决方法:在android/app/proguard-rules.pro文件中添加http库对应的混淆保留规则:
    -keep class com.google.common.net.** { *; }
    -keep class io.flutter.plugins.http.** { *; }
    
    同时确认android/app/build.gradle中release构建配置已关联混淆规则文件:
    release {
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        // 其余原有配置保持不变
    }
    
  • 临时验证方案:可在release构建配置中添加minifyEnabled false和shrinkResources false关闭代码压缩和资源裁剪,确认是否为压缩逻辑导致的问题。

生效验证

所有配置修改完成后,执行flutter clean清理项目缓存,再重新打包release版本测试即可。

内容的提问来源于stack exchange,提问作者Julia Breitenbach

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:21:01