I'm curious if I start using ACRA error reporting will error reports still show up in the Developer Console? If not, is there a way to allow for both? I'd like to be able to log into my dev console and see any new reports then go check the ACRA spreadsheet for more information.
I actually recommend that you use bugsense in conjunction with acra. It has a really nice interface in my opinion and you can use acra fields and whatnot.
Related
I'm using Firebase Crashlytics to report crashes. I'm using a game framework that handles logging for me and when running on Android, it logs to LogCat. I want to be able to include the LogCat logs with the crash report in Crashlytics. Is this possible?
I found this Library that could help (https://github.com/Ereza/LogcatReporter), but I'm not sure how well supported it is.
I know I can log like this:
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();
crashlytics.log("my message");
crashlytics.log("E/TAG: my message");
But I would prefer for the framework I'm using to handle the logging.
Any way to include those LogCat logs? Does Firebase have a built in supported way?
I suppose there is no feature to save logs into Firebase Crashlytics, but I found an interesting solution for saving logs into Firebase Realtime Database.
As announced by Google, the Firebase Crash Reporting is joining forces with Fabric. Here's a link
The exact details of how is this going to happen are abstract. But for developers who were using Firebase Crash Reporting, does this mean that they have to create a new account on Fabric and integrate its SDK and remove the one from Firebase?
I know I could wait until Google does the actual implementation, but switching from one SDK to another is not the best approach, if anyone has any insight on this...
The following is the text from the Firebase console when looking at Crash Reporting for the first time without any existing data. There's no additional information available about how exactly it's going to work.
Fabric’s Crashlytics
In the future, Fabric’s Crashlytics will become our primary crash
reporter because it provides advanced tools for solving stability
issues. If you’d like to be an early adopter, you can get a head start
by using Crashlytics on Fabric’s platform.
Crash Reporting
If you prefer to monitor stability in Firebase, you still have access
to Firebase Crash Reporting, which equips you with the essential tools
you need to track and resolve crashes. Eventually, Firebase Crash
Reporting will be seamlessly upgraded to Crashlytics.
according to the Google groups discussion, they recommend ppl to use crashytics for now if they don't have any strong preferences.
https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/firebase-talk/_uUuJm0wui8/rHuWYKbABwAJ
Ian Barber
We're mainly trying to signal forward intent - the feature sets are slightly different so I appreciate you may prefer to use Firebase Crash on a new app, but for those with no standing inclination we're recommending they go with crashlytics.
I'm developing an Android app that is currently in the Play Store. I've been getting reports of a crash on certain devices that I can't reproduce, and the Play Store's built in crash diagnostics don't contain enough information. What I really need is the Logcat information from these devices, but it seems that Android 4.1 and above don't allow the use of those "Log Collector" apps that used to be so popular for this purpose due to security concerns. Is there a library that I can add to my app that will allow it to log to a remote server on demand? I know enough about this crash that I could put a call to some mythical sendLogcatNow() function in the appropriate spot in the code, if I had such a function. Since the information I seek is not actually part of the crash (the crash occurs later), normal crash reporting tools such as Crashlytics don't seem like they will do what I need, but perhaps they have this feature and it's just not prominent in the documentation. Thanks!
There are few version for crash reporting..
Hockey App
Acra
BugSense
Android Remote stack trace
Since your app can always read logs for it's own process, you can also implement something of your own.
Out of all these, I personally prefer Acra. as it is most efficient and give many options to app developers.
I'm using ACRA for logging crashes from my app but based on their documentation,
you can add your own variables content or debug traces to the reports
you can send error reports even if the application doesn't crash
Which seems to be doing what you want.
https://github.com/ACRA/acra
You will need to run your own ACRA server (simple enough to run) and get your app to send the crash logs to your server. Everything is detailed on their website.
I would look into using a third party production crash system, there are a few out there. I am currently using Crashlytics. This specific service allows you to log and set key value pairs during the running of the application that get packaged with the crash report. These services also offer greater insight into the device type, OS and a variety of other device details.
With this set up I have then created a log function that will submit to the Crashlytics service as well as logging it to log cat.
You can also use Google Analytics or Flurry. But note that Google Analytics doesn't log stack traces and Flurry doesn't support real-time log reports on server.
Is there any way to upload exception logs thrown by Android to Server ?
Regards
Take a look at ACRA or BugSense.
You can view the brief report in "Exception/ANR" from Google Play Store
It is also suggested to use Google Analytics
It is very easy to use, and able to record all uncaught exception by setting a value to true in XML
Crittercism will do what you need without having to do it complex way. Just download the library, and integrate it.
It is easy to integrate, and much more reliable as compared to Google Play Store. Crittercism catches all exceptions, thread stack (so that u can check if there are any threads waiting doing nothing) and also the type of device. As compared to Play Store that just has a mention of about 1% of my crashes.
Google Analytics on the other hand is much more heavy as compared to flurry. I recommend a combination of flurry and crittercism.
If you don't want to use a third party lib, you can catch the exceptions yourself and do whatever you want with them like this -
UncaughtExceptionHandler currentHandler = Thread.getDefaultUncaughtExceptionHandler();
// Register if not already registered
if (!(currentHandler instanceof ExceptionHandler)) {
Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this, currentHandler));
}
Do this in the Application class.
In Android, Google officially supporting Fabrics's crashlytics online tool with Firebase for managing crash related informations. Also we can upload any exception to the server.
Also they provide a dashboard for visualizing many things related to our app.
To collect crash reports as a developer one uses logcat. Is there a standard way for a published android application to capture crash logs so that your users can send them to you?
Is there any callback that is called when an app crashes for example? Can the strategy that logcat uses to log be adopted to a production game?
Similar question for iOS Apps:
How can I allow users to give me feedback and submit bug reports for my iOS app?
Related Question
How can I accept bug reports and other user feedback from within my app?
EDIT 1:
In addition to the frameworks mentioned in the answers below a lower level approach to capturing all uncaught exceptions can be used an is mentioned here Ideal way to set global uncaught exception Handler in Android
I personally use ACRA. I found it easy to integrate, and it meets my requirements.
Reports are sent to a spreadsheet in Google Docs, and it can be configured to send you an email every time the app crashes
Using logcat is a solution but is only feasible when crashes are coming from your own device. However, you can have the crashes occurring on your users’ devices automatically sent to you as well, including all crash and device details.
This could be done through Instabug which is a bug & crash reporting service.
It automatically sends a report containing all crash and device details once a crash occurs, plus It only takes a line of code to integrate in your app.
For full disclosure, I work at Instabug. Let me know if I can help.
You can include Flurry Analytics in your app, which does create an error log when something craches and sends in back to the server, which you have access to. It will give you all the information like the LogCat.
I hope this helps.
There is also FirebaseCrash by Google which reports logs on your Firebase console.
Read more about it here
The Google Play Developer Console also reports crashes and application not responsive, under crashes and ANRs for each app.