Expand my Community achievements bar.

Interested in becoming an Adobe Analytics Champion? Join us on May 15 at 9 am PT, and learn how to become a 2025 Adobe Champion.
SOLVED

Analytics debugging on android device using Charles debugger

Avatar

Level 2

Hi everyone,

We've recently implemented Adobe Analytics in our Android app and are in the process of validating the implementation using Charles Proxy. However, we're running into an issue where no network calls from the app are being captured when Charles is connected.

It appears that once the Android device is configured to use Charles as a proxy, the internet stops working on the device entirely. Has anyone else experienced this? If so, how did you resolve it?

Any guidance or suggestions would be greatly appreciated!

Thanks in advance!

1 Accepted Solution

Avatar

Correct answer by
Community Advisor and Adobe Champion

We stopped using Charles a while ago, and use AEP Assurance (at least for Adobe).

 

However, we have other tracking systems in our apps that we still do need to test tracking, and of course, we need a proxy tool for that.

 

We started using HTTP Toolkit, but Android still gave us some issues due to Android's security.

 

HTTP Toolkit has a whole page about connecting Android:

https://httptoolkit.com/docs/guides/android/

 

Of particular interest is modifying the network security config for your own app, that tells Android to allow the proxy connection.

 

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config>
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" overridePins="true" />
        </trust-anchors>
    </base-config>
</network-security-config>

 

I believe that no matter what proxy tool you are trying to use, you may have to apply a similar change applied to your apps.

 

 

This basically just provides a directive for your application to trust both built-in AND user-added CA certificates (whether that cert is for Http Toolkit, Charles, Fiddler, or any other proxy tool)

 

Good luck

View solution in original post

4 Replies

Avatar

Employee Advisor

This is a fairly common issue when using Charles Proxy with Android devices, and it usually comes down to SSL certificate trust or proxy configuration problems. You can validate a couple of things:


Ensure Proxy is Set Correctly on the Android Device
On your Android device:

  • Go to Wi-Fi settings
  • Tap and hold your connected Wi-Fi network → Modify network
  • Enable Advanced options
  • Set Proxy to Manual
  • Enter your laptop/PC IP address as Proxy hostname
  • Set Port to 8888 (default for Charles)

Install Charles SSL Certificate on the Android Device - This is crucial for HTTPS traffic to be intercepted.

A. Export the certificate:
In Charles: Go to Help → SSL Proxying → Install Charles Root Certificate on a Mobile Device or Remote Browser.

It will show a link like: http://charlesproxy.com/getssl

Open this on your Android device browser.

B. Install the certificate:
Download the certificate and name it (e.g., CharlesSSL)

You’ll be prompted to set a device screen lock if not already set.

It installs under Settings → Security → Trusted credentials → User


Furthermore, from Android 7.0 (Nougat) onwards, apps do not trust user-installed certificates by default. This means:

If you're debugging your own app, you need to explicitly trust user certs by adding the following to your app’s network_security_config.xml.

 

Enable SSL Proxying in Charles: In Charles: Go to Proxy → SSL Proxying Settings

  • Check Enable SSL Proxying
  • Add a location for: Host: * and Port: 443

This ensures all HTTPS traffic can be decrypted.

 

These are a couple of things that you can check.

Avatar

Correct answer by
Community Advisor and Adobe Champion

We stopped using Charles a while ago, and use AEP Assurance (at least for Adobe).

 

However, we have other tracking systems in our apps that we still do need to test tracking, and of course, we need a proxy tool for that.

 

We started using HTTP Toolkit, but Android still gave us some issues due to Android's security.

 

HTTP Toolkit has a whole page about connecting Android:

https://httptoolkit.com/docs/guides/android/

 

Of particular interest is modifying the network security config for your own app, that tells Android to allow the proxy connection.

 

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config>
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" overridePins="true" />
        </trust-anchors>
    </base-config>
</network-security-config>

 

I believe that no matter what proxy tool you are trying to use, you may have to apply a similar change applied to your apps.

 

 

This basically just provides a directive for your application to trust both built-in AND user-added CA certificates (whether that cert is for Http Toolkit, Charles, Fiddler, or any other proxy tool)

 

Good luck

Avatar

Level 2

Hi @Jennifer_Dungan , 

 

Thank you for your response. We’ve already implemented the suggested configuration update at the app level. However, we're still seeing the message "SYSTEM TRUST DISABLED" when attempting to connect to the HTTP Toolkit app from an Android device.

 

While we're able to track all the static events within the app, the content is not loading as expected—likely due to API calls failing with the current setup. Could you please advise if there are any additional steps we might have missed or need to take to resolve this?

 

purnimajena_1-1745244507847.jpeg

 

 

Thanks,

Purnima Jena

 

Avatar

Community Advisor and Adobe Champion

Hmm have you installed the HTTP Toolkit Certificate? (connect to HTTP Toolkit with your device, then navigate to http://amiusing.httptoolkit.tech/certificate, then install the certificate here... this will be generated by your own computer)

 

It's been a while since I set this up on my system, so I am trying to remember all the steps, and if there are more troubleshooting options.