Inicio Foros Lenguajes de programación, desarrollo, código fuente Java y Kotlin Error CLEARTEXT communication not permitted [RESUELTO]

Viendo 2 entradas - de la 1 a la 2 (de un total de 2)
  • Autor
    Entradas
  • #51719
    Varios
    Moderador

    Hola, estoy intentando usar Retrofit y Gson en un proyecto Android Studio con Kotlin, parece que todo está correcto pero al compilar me aparece este error y la App no carga:

    FATAL EXCEPTION: main
    Process: facturacion.com.facturacionretrofit, PID: 11026
    java.net.UnknownServiceException: CLEARTEXT communication to localhost not permitted by network security policy
    at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:164)
    at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.java:224)
    at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.java:108)
    at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.java:88)
    at okhttp3.internal.connection.Transmitter.newExchange(Transmitter.java:169)
    at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:41)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
    at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
    at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
    at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
    at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:229)
    at okhttp3.RealCall$AsyncCall.execute(RealCall.java:172)
    at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
    at java.lang.Thread.run(Thread.java:1012)
    Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@9e7b846, Dispatchers.Main.immediate]
    2025-01-12 12:58:11.085 11026-11026 Process facturacion.com.facturacionretrofit I Sending signal. PID: 11026 SIG: 9

    ¿A qué puede ser debido? ¿cómo lo resuelvo?

    #51728
    alonsojpd
    Superadministrador

    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:

    Recuerda que es importante, por seguridad, no usar nunca conexión HTTP sin cifrar con el servidor API Restful.

Viendo 2 entradas - de la 1 a la 2 (de un total de 2)
  • Debes estar registrado para responder a este debate.