首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flutter Release apk在android 11.0移动设备上无法连接互联网,但在android 8.0上可以连接互联网

问题描述: Flutter Release apk在android 11.0移动设备上无法连接互联网,但在android 8.0上可以连接互联网。

解决方案: 这个问题可能是由于Android 11.0引入的网络安全策略变化所导致的。在Android 11.0及以上版本中,应用默认使用了更加严格的网络安全策略,要求应用使用HTTPS协议进行网络通信,并且要求服务器端证书必须是由受信任的CA颁发的。

为了解决这个问题,可以尝试以下几个步骤:

  1. 检查网络权限:确保在AndroidManifest.xml文件中添加了正确的网络权限声明,即 <uses-permission android:name="android.permission.INTERNET" />
  2. 检查网络安全配置:在res目录下创建一个xml文件夹,并在其中创建一个network_security_config.xml文件。在该文件中配置网络安全策略,允许使用HTTP协议进行网络通信。示例配置如下:
代码语言:txt
复制
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>

然后,在AndroidManifest.xml文件中的application标签中添加以下属性,指定网络安全配置文件:

代码语言:txt
复制
<application
    ...
    android:networkSecurityConfig="@xml/network_security_config"
    ...>
  1. 检查混淆配置:如果你在构建Release版本时启用了代码混淆(ProGuard/R8),请确保网络相关的类和方法没有被混淆掉。可以在ProGuard/R8配置文件中添加以下规则:
代码语言:txt
复制
-keep class okhttp3.** { *; }
-keep class com.squareup.okhttp3.** { *; }
-keep class javax.net.ssl.** { *; }
  1. 检查证书信任链:如果你的服务器使用的是自签名证书或者是由非受信任的CA颁发的证书,需要在应用中配置信任该证书。可以使用OkHttp库的自定义证书功能来实现。具体实现方式可以参考腾讯云的产品文档:自定义证书
  2. 更新Flutter和相关依赖:确保你使用的是最新版本的Flutter和相关依赖库,以获得最新的修复和改进。

以上是针对Flutter Release apk在Android 11.0移动设备上无法连接互联网的解决方案。如果问题仍然存在,建议进一步检查设备的网络设置、网络环境以及应用的其他配置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券