Flutter模块集成Android原生应用后Release模式无法联网求助
Flutter模块集成到Android原生后Release模式联网问题解决方案
检查Flutter混淆规则
Release模式下Flutter默认开启混淆,可能会破坏网络相关类/方法。在Android原生的proguard-rules.pro中添加以下豁免规则:-keep class io.flutter.app.** { *; } -keep class io.flutter.plugin.** { *; } -keep class io.flutter.util.** { *; } -keep class io.flutter.view.** { *; } -keep class io.flutter.** { *; } -keep class io.flutter.plugins.** { *; }若使用Dio等第三方网络库,需额外添加对应库的混淆规则,比如Dio:
-keep class com.dio.** { *; } -dontwarn com.dio.**排查Release模式下的网络逻辑拦截
检查main.dart中是否存在根据环境禁用网络的代码,比如:if (kReleaseMode) { // 确认此处没有误拦截网络请求的逻辑 }确保Release模式下未取消或限制网络请求。
配置Android网络安全策略(Android 9+)
若请求HTTP明文接口,Android 9及以上默认禁止明文流量,需创建res/xml/network_security_config.xml:<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true" /> </network-security-config>并在
AndroidManifest.xml的application标签中引用:<application ... android:networkSecurityConfig="@xml/network_security_config">验证Flutter模块编译配置
检查Flutter模块的build.gradle是否存在异常编译选项,执行flutter build apk --release重新编译模块,替换原生项目中的Flutter产物,确保编译无报错。排除代理/网络环境干扰
调试模式可能依赖代理,Release模式默认不启用代理,测试时关闭设备代理、VPN,确保网络环境正常。
内容的提问来源于stack exchange,提问作者Nguyễn Văn Linh
相关产品推荐
相关产品推荐

