【问题标题】:CLEARTEXT communication not permitted by network security policy working on my mobile在我的手机上运行的网络安全策略不允许 CLEARTEXT 通信
【发布时间】:2020-05-27 06:34:13
【问题描述】:

我正在构建一个应用程序,并且在我朋友的手机上遇到网络安全策略错误不允许的 CLEARTEXT 通信(我只是在另一个手机上测试它)。当然,我无法追踪问题,因为该应用程序在我的手机上运行正常(没有 USB 调试),我从 google play 下载了它。

我做了所有需要通过添加来解决这个问题 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>

它仍然无法正常工作。 我无法在手机上追踪问题,因为它可以正常工作。为什么我没有收到和我朋友手机一样的错误???

我希望它在我的手机上给我同样的错误,以便能够追踪问题。我删除了上述所有选项,它仍然可以在我的手机上运行。在我添加任何东西之前它甚至可以工作,因为我只是在我朋友的手机上安装后才发现问题。

【问题讨论】:

  • 如果问题解决了,请将答案标记为已接受。

标签: android http android-security cleartext


【解决方案1】:

如果你在你的 api url 中使用 Http 而不是 Https,那么只需在 AndroidManifest.xml 的 标签中添加这一行。

android:usesCleartextTraffic="true"

它会解决你的问题

【讨论】:

  • 好的,但是谷歌引入这样一个功能除了复杂的开发生活有什么意义
【解决方案2】:

我在 react-native 项目中遇到了同样的问题。我解决了这个article 的问题,将我的托管服务提供商的域名

  • 用内容创建res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">my-domain-name.com</domain>
    </domain-config>
</network-security-config>
  • 从您的清单中指向此文件(要获得奖励积分,请仅为 test 清单添加):
<application
  android:networkSecurityConfig="@xml/network_security_config"
  android:label="@string/app_name"
  android:theme="@style/AppTheme">
     <activity android:name=" (...)
</application>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-01
    • 2020-05-08
    • 1970-01-01
    • 2020-10-30
    • 2020-11-23
    • 1970-01-01
    • 2023-02-09
    • 2021-09-27
    相关资源
    最近更新 更多