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

Flutter应用部署Android真机运行黑屏、无法联网问题解决方案咨询

Flutter 安卓真机部署黑屏、无网络连接(应用数据用量为0)排查方案

这个问题90%的情况都是release包配置和debug环境不一致导致的,按以下顺序逐个排查即可:

  • 核对权限声明的文件路径与标签位置
    不要改错配置文件:必须修改android/app/src/main/AndroidManifest.xml,src/debug、src/profile目录下的Manifest配置仅对对应构建模式生效,打release包不会读取。
    权限标签必须作为<manifest>的直接子节点存在,不能嵌套在<application>标签内部,必须显式声明两个基础网络权限:
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
    注意:Flutter debug模式默认会自动注入网络权限,不需要手动写,这也是前期开发调试一切正常、打正式包部署就出问题的最常见原因。
  • 检查application标签的网络相关配置
    如果项目targetSdkVersion≥28,<application>标签不要设置android:usesCleartextTraffic="false";如果项目需要请求HTTP明文接口,必须显式配置android:usesCleartextTraffic="true"。如果自定义了networkSecurityConfig,确认配置文件没有全局拦截域名访问,测试阶段可以先临时删掉这个配置,验证是否是安全规则拦截导致的无网络。
  • 排查混淆配置误拦截网络逻辑
    如果开了R8/ProGuard代码混淆,确认混淆规则没有误删、误混淆网络请求相关类,在android/app/proguard-rules.pro中添加基础keep规则后重新打包:
    -keep class io.flutter.app.** { *; }
    -keep class io.flutter.plugin.**  { *; }
    -keep class io.flutter.util.**  { *; }
    -keep class io.flutter.view.**  { *; }
    
    如果你用了Dio、Retrofit这类第三方网络库,也要对应添加官方给出的混淆规则。
  • 排查安装环节的权限默认禁用问题
    部分国产ROM直接点击APK文件安装时,会默认给第三方来源应用关闭网络权限,表现就是应用启动后连不上网、数据用量始终为0。先卸载设备上已安装的当前应用,通过adb执行adb install -r 你的release包路径.apk重新安装,首次启动弹出网络权限申请时选择允许,再验证网络是否正常。

补充说明:Flutter 3.10及以上版本,如果release包没有声明INTERNET权限,引擎初始化网络栈时会直接崩溃黑屏,和页面渲染逻辑无关,不需要浪费时间排查Flutter层的UI代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:18:53