39

我正在构建一个应用程序,并且在我的朋友手机上面临网络安全策略错误不允许的 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>

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

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

4

2 回答 2

66

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

android:usesCleartextTraffic="true"

它会解决你的问题

于 2020-06-19T19:12:00.100 回答
22

我对 react-native 项目有同样的问题。我得到解决这篇文章的问题,把我的托管服务提供商的域名

  • 使用内容创建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>
于 2020-02-27T02:44:35.310 回答