CLEARTEXT communication not permitted
Текст ошибки
java.net.UnknownServiceException: CLEARTEXT communication to api.example.com not permitted by network security policy
Причина
Начиная с Android 9 запросы http:// по умолчанию блокируются. Приложение пытается подключиться к незашифрованному адресу.
Решение по шагам
- Лучшее решение: отдавать бэкенд по
https://и сменить адрес. - Только для локальных тестов создай
network_security_config.xmlи разреши конкретный домен (10.0.2.2,localhost). - Укажи файл в
<application android:networkSecurityConfig=...>. - Не ставь
usesCleartextTraffic="true"для всего трафика; держи только в debug-сборке. - Проверь 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
- APK не устанавливается
- Что такое parse error?
- Потерян keystore
- Подписи не совпадают
- Ошибка имени пакета
- Файл APK повреждён
- Play Protect блокирует приложение
- Пакет кажется недействительным
- Не хватает памяти
- Телефон не подходит
- Старая версия не устанавливается
- XAPK не устанавливается
- Gradle sync не удался
- Не удалось разрешить зависимость (Could not resolve)
- Ошибка Duplicate class
- Manifest merger failed
- Лимит dex: 65536 методов
- R8: Missing class
- Несовместимая версия JDK
- SDK location not found
- Конфликт minSdkVersion
- compileSdk слишком низкий
- EAS build: ошибка Gradle
- Ошибка expo prebuild
- Metro: Unable to resolve module
- Hermes: ошибка JS только в release
- Белый экран в release
- Красный экран: нет связи с Metro
- Несовпадение версий Expo SDK
- Ошибка Capacitor sync
- Capacitor: белый экран
- EAS: ошибка keystore и credentials
- Keystore tampered / неверный пароль
- Неверный alias или пароль ключа
- Play: подписано не тем ключом
- INSTALL_FAILED_UPDATE_INCOMPATIBLE
- INSTALL_FAILED_VERSION_DOWNGRADE
- INSTALL_FAILED_INSUFFICIENT_STORAGE
- INSTALL_FAILED_NO_MATCHING_ABIS
- Ошибка разбора пакета (Parse error)
- Ошибка «App not installed»
- Установка AAB-файла на телефон
- adb: устройство «unauthorized»
- adb: устройство не найдено
- Несовпадение версии сервера adb
- Activity class does not exist
- Play: слишком низкий targetSdk
- Play: отклонение по политике разрешений
- Play: требование 64-bit
- Play: versionCode уже использован
- Краш ClassNotFound / NoSuchMethod
- Краш OutOfMemoryError
- SecurityException: разрешение отклонено