赞
踩
[异常原因]:从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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。