Inicio › Foros › Lenguajes de programación, desarrollo, código fuente › Java y Kotlin › Error CLEARTEXT communication not permitted [RESUELTO] › Respuesta a: Error CLEARTEXT communication not permitted [RESUELTO]
El error que nos comentas es debido a que Android tiene una directiva de seguridad para impedir, a priori, el uso de acceso a sitios HTTP sin cifrado para consumo de APIRest. En tu caso estás intentando acceder al servidor de localhost, que no lo tienes en HTTPS.
Si estás en modo depuración y estás usando un servidor de API Restful en local, puedes desactivar esa directiva. Para ello, edita el fichero AndroidManifest.xml y añadir android:usesCleartextTraffic=»true» en «application».
Un ejemplo de fichero AndroidManifest.xml con esta directiva:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <uses-permission android:name="android.permission.INTERNET"/> <application android:usesCleartextTraffic="true" android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.ProyectoARetrofit" tools:targetApi="31"> <activity android:name=".MainActivity" android:exported="true" android:label="@string/app_name" android:theme="@style/Theme.ProyectoARetrofit"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> |
Recuerda que es importante, por seguridad, no usar nunca conexión HTTP sin cifrar con el servidor API Restful.