Ошибки APK

CLEARTEXT communication not permitted

Текст ошибки

java.net.UnknownServiceException: CLEARTEXT communication to api.example.com not permitted by network security policy

Причина

Начиная с Android 9 запросы http:// по умолчанию блокируются. Приложение пытается подключиться к незашифрованному адресу.

Решение по шагам

  1. Лучшее решение: отдавать бэкенд по https:// и сменить адрес.
  2. Только для локальных тестов создай network_security_config.xml и разреши конкретный домен (10.0.2.2, localhost).
  3. Укажи файл в <application android:networkSecurityConfig=...>.
  4. Не ставь usesCleartextTraffic="true" для всего трафика; держи только в debug-сборке.
  5. Проверь release APK на реальном телефоне: сетевая ошибка там может обернуться белым экраном.

Примеры команд

<!-- res/xml/network_security_config.xml -->
<network-security-config>
  <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="true">10.0.2.2</domain>
  </domain-config>
</network-security-config>
<application android:networkSecurityConfig="@xml/network_security_config" ...>

Как не повторить

В release используй только HTTPS, а разрешение http держи в debug-наборе.

Автор и лицензия: Nibras Code