我正在构建一个应用程序,并且在我朋友的手机上面临网络安全策略错误不允许的 CLEARTEXT 通信(我只是在另一个手机上测试它)。当然我无法追踪问题,因为应用程序在我的手机上运行正常(没有 USB 调试),我从谷歌播放下载它。
我通过添加android:usesCleartextTraffic="true"到应用程序标签来解决这个问题,
AndroidManifest.xml
我还添加了 android:networkSecurityConfig="@xml/network_security_config"
我的配置 XML:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">MY IP</domain>
</domain-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)
它仍然无法正常工作。我无法在我的手机上追踪问题,因为它可以工作。为什么我没有收到和我朋友手机一样的错误???
我希望它在我的手机上给我同样的错误,以便能够追踪问题。我删除了上述所有选项,但它仍然可以在我的手机上运行。在我添加任何东西之前它甚至可以工作,因为我只是在我朋友的手机上安装后才发现问题。
我的应用程序存在问题,不允许到 x 的明文 HTTP 流量。
我已经尝试将 android:usesCleartextTraffic="true" 放入我的清单中。但我想将“android:usesCleartextTraffic”标志更改为“false”以防止发送未加密的流量。
怎么解决这个问题呢?
我的程序从用户那里获取一个 URL,因此它可以向互联网上的任何网站发出请求。我试图让这成为可能,我查找了有关“Android HTTP Cleartext”错误的所有答案,并做了这个,但它仍然不允许我连接我的测试本地 PHP 服务器,我在这里缺少什么?
<uses-permission android:name="android.permission.INTERNET" />
...
<application
...
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config"
tools:ignore="UnusedAttribute"
Run Code Online (Sandbox Code Playgroud)
我的安全配置:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">api.example.com</domain>
</domain-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)
谢谢!