在Android N预览中不允许使用Cleartext到myserver.com的HTTP流量

前端之家收集整理的这篇文章主要介绍了在Android N预览中不允许使用Cleartext到myserver.com的HTTP流量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
昨天我获得了 Android N预览的新升级.自从我升级以来,我再也无法启动我的应用了.
java.io.IOException: Cleartext HTTP traffic to myserver.com not permitted

我试图在清单中将usesCleartextTraffic设置为true或添加network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">myserver.com</domain>
    </domain-config>
</network-security-config>

也没有工作.关于那里发生了什么的任何想法?

当我尝试在清单中定义networkSecurityConfig时,我收到编译错误

Error:(35) No resource identifier found for attribute 'networkSecurityConfig' in package 'android'

不太确定为什么.文件在那里,一切看起来都不错.

在Google的Android问题跟踪器中找到了this建议.他们建议将network_security_config定义移动到元数据.我仍然得到相同的例外.

解决方法

@H_502_21@ Android N Developer Preview 4中存在一个已知问题,即如果应用修改其ApplicationInfo.flags,它也会触发阻止来自应用的明文流量,即使该应用未请求明文流量被阻止.修复程序位于下一个开发人员预览版中.因此,这与您的网络安全配置无关.事实上,您甚至不需要声明自定义网络安全配置.

如果您不能等到下一个Android N开发者预览版,请检查您的应用程序,以查找它修改自己的ApplicationInfo.flags的位置.通常,它采用getApplicationInfo().flags& = ApplicationInfo.FLAG_DEBUGGABLE或getApplicationInfo().flags = ApplicationInfo.FLAG_DEBUGGABLE的形式.这些用法的修复方法是(getApplicationInfo().flags& ApplicationInfo.FLAG_DEBUGGABLE).

或者,作为一种变通方法,尽可能早地在应用程序的生命周期中调用NetworkSecurityPolicy.isCleartextTrafficPermitted().如果在篡改ApplicationInfo.flags的代码之前调用此变通方法应该有效.

原文链接:https://www.f2er.com/android/315721.html

猜你在找的Android相关文章