This error could be seen on Android Emulator/Device Version >= 6.0.
It occurs when your app tries to send/receive request/response to a remote API that is not secure (http). That's the reason why you should stick to communicating with remote API's via a secured channel (https). But you can resolve the issue by setting the usesCleartextTraffic attribute to "true" inside the application opening tag of your android manifest file.
<application
android:usesCleartextTraffic="true" >
The aforementioned tip solves the problem, but it tends to open a threat to data integrity. Thus you can make it better by setting up, and leveraging on a network security configuration file. This can be done thus;
Step 1:
GOTO res->New->android resource directory. Create your xml resource directory
Step 2: Create a new Resource File (with the name: 'network_security_config') inside the newly created xml resource directory
by navigating through (xml->New->XML Resource File).
Step 3: Paste the code below into the newly created 'network_security_config.xml' file
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">your_site_domain.com</domain>
</domain-config>
</network-security-config>
Step 4: Goto your AndroidManifest.xml file and add the code android:networkSecurityConfig="@xml/network_security_config" inside the application opening tag of your android manifest file.
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config" >
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…