当前位置:   article > 正文

Android Studio使用Webview 时 net::ERR_CLEARTEXT_NOT_PERMITTED解决办法_err cleartext not permitted

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)】

在此需要添加允许权限

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

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

  1. Manifest merger failed : Attribute application@usesCleartextTraffic value=(true) from AndroidManifest.xml:34:9-44
  2. is also present at [com.dji:dji-sdk-v5-all:5.2.0] AndroidManifest.xml:27:9-45 value=(false).
  3. 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",这种方法与方法二是相似的。

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

 【解决方法(2)】

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

 【解决方法(3)】

targetSdkVersion 降级回到 27

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/824193
推荐阅读
相关标签
  

闽ICP备14008679号