Android Studio使用Webview 时 net::ERR_CLEARTEXT_NOT_PERMITTED解决办法

前言


 [异常原因]:从Android 9.0 (API级别28) 开始,默认情况下限制了明文流量的网络请求,对未加密流量不再信任,直接放弃请求因此http的url均无法在webview中加载,https 不受影响。

在Android Studio中使用webview加载URL出现net::ERR_CLEARTEXT_NOT_PERMITTED
cleartext为明文 permitted表示允许即加载http时明文不被允许

从Android 9.0(API级别28)开始,默认情况下禁用明文支持。因此http的url均无法在webview中加载

先保证App申明了网络权限

<uses-permission android:name="android.permission.INTERNET"/>

 【解决方法(1)】

在此需要添加允许权限

 <application
        android:name="dji.sampleV5.all.DJIAllApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_main"
        android:label="@string/app_name_all"
        android:supportsRtl="true"
        android:usesCleartextTraffic="true"  //加上这句就可以
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

我这里加上这句之后会已下错误

Manifest merger failed : Attribute application@usesCleartextTraffic value=(true) from AndroidManifest.xml:34:9-44
is also present at [com.dji:dji-sdk-v5-all:5.2.0] AndroidManifest.xml:27:9-45 value=(false).
Suggestion: add 'tools:replace="android:usesCleartextTraffic"' to <application> element at AndroidManifest.xml:28:5-119:19 to override.

 解决报错问题方法

res 下新建 xml目录,创建文件: network_config.xml ,内容如下:

在AndroidManifest.xml文件的application标签里加入android:networkSecurityConfig="@xml/network_security_config",这种方法与方法二是相似的。

<?xml version="1.0" encoding="utf-8"?>
<network-security-config xmlns:tools="http://schemas.android.com/tools">
    <base-config cleartextTrafficPermitted="true"
        tools:ignore="MissingPrefix" />
</network-security-config>

 【解决方法(2)】

服务器和本地应用都改用 https

 【解决方法(3)】

targetSdkVersion 降级回到 27

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值