Solución al Error: “exception not”
Descripción del Error
El error “exception not” suele presentarse en aplicaciones Android cuando se intenta realizar una comunicación a través de HTTP sin las configuraciones adecuadas en la seguridad de red. Esto es especialmente común a partir de Android 9 (Pie), donde las políticas de seguridad se han vuelto más estrictas, prohibiendo el tráfico HTTP sin la debida configuración. Este artículo se centrará en cómo resolver este error y evitar que vuelva a ocurrir en el futuro.
Causas Comunes
Las causas más comunes del error “exception not” incluyen:
- Tráfico claro no permitido: A partir de Android 9, el tráfico claro (HTTP en lugar de HTTPS) no está permitido a menos que se configure explícitamente.
- Falta de configuración en el archivo
network_security_config.xml: Si este archivo no está presente o no está configurado correctamente, la aplicación no podrá establecer conexiones HTTP. - Configuraciones incorrectas en el archivo
AndroidManifest.xml: No especificar el archivo de configuración de seguridad de red o no incluir los permisos necesarios puede causar este error. - Problemas con las conexiones de los outlets en Storyboards (en el caso de desarrollo en iOS): Los outlets que apuntan a propiedades antiguas pueden provocar excepciones.
Métodos de Solución
Método 1: Configurar el Archivo de Seguridad de Red
Para permitir el tráfico claro en tu aplicación Android, sigue estos pasos:
- Crear un archivo de configuración de seguridad de red:
- Crea un archivo llamado
network_security_config.xmlen la carpetares/xml/. - Agrega el siguiente contenido:
“`xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config><br />
<domain-config cleartextTrafficPermitted="true"><br />
<domain includeSubdomains="true">api.example.com</domain><br />
</domain-config><br />
</network-security-config><br />
<code><ol>
<li><strong>Modificar el archivo <code>AndroidManifest.xml</code></strong>:</li>
<li>Asegúrate de incluir la referencia al archivo de configuración de seguridad de red:</li>
</ol>
<code>xml
<manifest …>
<uses-permission android:name="android.permission.INTERNET" />
<application
android:networkSecurityConfig="@xml/network_security_config"
…>
…
</application>
</manifest></code>
<h3>Método 2: Habilitar el Tráfico Claro Globalmente</h3>
Si deseas permitir el tráfico claro en toda la aplicación, puedes hacerlo de esta manera:
<ol>
<li><strong>Modificar tu <code>network_security_config.xml</code></strong>:</li>
<li>Cambia el contenido del archivo para que permita el tráfico claro de esta forma:</li>
</ol></code>xml<br />
<?xml version="1.0" encoding="utf-8"?>
<network-security-config><br />
<base-config cleartextTrafficPermitted="true"><br />
<trust-anchors><br />
<certificates src="system" /><br />
</trust-anchors><br />
</base-config><br />
</network-security-config><br />
“`
- Asegúrate de que tu
AndroidManifest.xmlhaga referencia a este archivo como se muestra en el método anterior.
Método 3: Manejo de Excepciones en Python
Si estás trabajando en un entorno Python y encuentras el error “exception not”, puedes capturar y mostrar la traza de la excepción de la siguiente manera:
- Código de ejemplo:
“`python
import traceback
def do_stuff():<br />
raise Exception("test exception")
try:<br />
do_stuff()<br />
except Exception:<br />
print(traceback.format_exc())<br />
“`
Este código permitirá que, cuando ocurra una excepción, se imprima la traza completa de la excepción, ayudándote a identificar el problema.
Consejos de Prevención
Para evitar que el error “exception not” vuelva a aparecer en el futuro, considera lo siguiente:
- Siempre utiliza HTTPS: Siempre que sea posible, utiliza conexiones seguras para evitar problemas de seguridad.
- Mantén actualizados tus archivos de configuración: Asegúrate de que
network_security_config.xmlyAndroidManifest.xmlestén correctamente configurados y actualizados. - Prueba en diferentes versiones de Android: Asegúrate de que tu aplicación funcione en varias versiones de Android para identificar problemas antes de que los usuarios los encuentren.
Resumen
El error “exception not” es un problema común que se puede resolver mediante la correcta configuración de los archivos de seguridad de red en aplicaciones Android. Asegurándote de que tu aplicación esté configurada para permitir tráfico claro y que manejes adecuadamente las excepciones en otros entornos como Python, puedes evitar que este error afecte a tus usuarios. Con los pasos mencionados, podrás resolver este error y asegurar una experiencia de usuario más fluida.

コメント