Harsh Middha
Harsh Middha

Reputation: 143

Whats the impact of having multiple crash reporting tools in Android App

In my app ,i have integrated Crashlytics ,ACRA and Google Analytics for reporting crashes

-> is there any side effect of one on others ?

-> Which one is better to use.

-> How crash reporting tools work ,if one caught the crash how other will get to report the same crash ?

Upvotes: 6

Views: 1222

Answers (3)

Zoe - Save the data dump
Zoe - Save the data dump

Reputation: 28238

is there any side effect of one on others ?

Google Analytics is not really good to use. I created a Google Analytics account a few days before the implementation. It had not been used and not even been copied(the code) and when I came back to insert Google Analytics I had to get the code. Noone had used a Google Analytics version of the app and it wasn't even released and it had a lot of usages logged. I don't like google analytics because the code's are easy to crack and are used by third party websites without consent to add fake clicks on your website when the code isn't even used there.

Additonally, Google Analytics does only handle when it is forced to log. As it is not a dedicated crash analytics tool it does not log crashes like ACRA, Crashalytics and Firebase crashes.

Which one is better to use.

That is really up to you, but personally I find ACRA to be better because you can use backends on your own site. If the site goes down, so does ACRA so it really helps to feel in control of the bringing the site back up.

Additionally, there are many backends if you want to use your own site. And if you don't find one that works you can create one. Crashalytics and Firebase rely on their own dashboard on their respective pages, which means another password and username to remember.

How crash reporting tools work ,if one caught the crash how other will get to report the same crash ?

See Drew's answer

Upvotes: 1

Drew
Drew

Reputation: 3334

Using multiple crash reporting solutions in one project simultaneously might run your application into concurrency issue, where application eventually hangs forever upon any crash.

Crash reporting solutions intercept uncaught crashes, in one way or another. The flow is basically the same:

  1. Intercept uncaught crash;
  2. Log it to be able to send info to server;
  3. Re-throw crash, so that the app eventually crashes.

I could imagine a situation where 2 crash reporting solutions create an infinite loop throwing the same exception to each other forever, according to the steps above.

At least, that's what it looked like when I used Google Analytics (with crash reporting turned on) together with Crashlytics. The application just hanged forever without any visible crashing, until I eventually turned Google Analytics crash reporting off.

Upvotes: 2

MohK
MohK

Reputation: 1933

Crash analytics tools Might be using Global Exception handling as in this https://stackoverflow.com/a/8877177/1602333 for entire App to handle uncaught Exceptions.

SO if you use multiple crash analytics tools , each of them may replace Global Exception handler .

Upvotes: 1

Related Questions