Android调试笔记——IOException java.io.IOException: Cleartext HTTP traffic to * not permitted

报错

加载网络图片时报的以下错误,网络图片没法正常显示。

IOException java.io.IOException: Cleartext HTTP traffic to * not permitted

原因

从 Android 9(API 级别28)开始,明文支持默认是禁用的。

解决

方法一

把网络图片的url协议头的http改为https即可。

方法二

  1. 创建安全配置文件
    在res文件夹下创建xml/network_security_config.xml文件,添加cleartextTrafficPermitted属性(是否允许使用http这种不安全的链接)
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>
  1. 添加安全配置文件
    AndroidManifest.xml中的application声明
android:networkSecurityConfig="@xml/network_security_config"
  1. 记得访问网络需要AndroidManifest.xml中开网络权限
    <uses-permission android:name="android.permission.INTERNET"/>

方法三

直接在AndroidManifest.xml中的application声明

android:usesCleartextTraffic="true"

我在真机上测试是能够正常读取到网络传来的图片的,但虚拟机上读不到,不知道是什么原因。


版权声明:本文为qq_33548747原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。