Any ideas how can I create a bug report in my application and when application crash to open a dialog and give the user a chance to send us report with files attached to the e-mail and etc. I've already implemented a function which is sending the error message to out server, but I want to be able to let the user to send these errors with some text input, attached files and etc.
Any ideas how should I proceed?
You can find exactly what you're looking for in Instabug. It is a bug & crash reporting SDK that allows for two things:
Allows users to report bugs through a shake gesture in-app
Upon a shake, a screenshot is taken that the user can draw on for visual bug identification.
User can further describe the bug using text, extra screenshots, voice notes, or even screen recordings.
Automatically receive crash reports in the event of a crash
All reports arrive to your Instabug dashboard containing various details such as:
Network and console logs
Complete Device details
Visual reproduction steps
Crash stack trace (In case of a crash report)
It only takes a line of code to integrate.
For full disclosure, I work at Instabug. Let me know if I can help.
See ACRA. It's a solid crash reporting library.
You can get more information than the reports in Google Play, and there are a lot of configuration options detailing just which info you want and how you want it delivered. Default is to upload spreadsheets into Google docs.
Also allows user input at crash time.
Related
I'm trying to set up my app with firebase+crashlytics for having a better error dashboard.
All the firebase stuff is already working and I'm able to access the features
I tested crashlytics with:
Crashlytics.getInstance().crash(); // Force a crash
and i'm able to see the stack trace on my dashboard (inside firebase)
but I'm trying to log non-fatal messages like:
Crashlytics.log("test");
And it doesn't appear anywhere
I followed the whole instructions at:
https://firebase.google.com/docs/crashlytics/customize-crash-reports
Still doesn't find any dashboard with the "test" messages
Where does it go? what am I missing?
Sending non-debug errors (e.g. your test message) logs to Crashlytics locally, but these exceptions are not uploaded until the app restarts.
As the documentation states:
Crashlytics batches logged exceptions together and sends them the next time the app launches.
This is presumably due to the primary Crashlytics functionality (reporting crashes) working in the same way, and non-fatal errors being a secondary concern using the same code flow.
Whilst this is unfortunate, there are many third party log-collating services that can handle the non-fatal errors.
Note: I'm aware you've received an answer in the comments from Crashlytics, I'm providing a more comprehensive answer for future visitors.
It's an old question any way i wanted to share what happens to messages logged using Crashlytics.log(msg); These logs are not immediately shown to dashboard. Crashlytics stores all the logged messages logged using log(msg) method and uploads it to server when a new Crash or Exception occurs.
You can see these messages in Firebase console under logs section as shown in below image
One more thing if you want to log exceptions there is another method for it Crashlytics.logException(exception)
Crashlytics isn't made for develop logging/debug, it is made to cluster hundreds/thousands of logs from different users at runtime, this may cause delays between the time the log message are recorded and when you will really be able to see them at the dashboard making it unusable for development debug.
If you want to use Crashlytics to follow the code workflow and debug during development, you will need to use the trick in this answer.
https://stackoverflow.com/a/69340289/5679560
As mentioned in below link
https://support.crashlytics.com/knowledgebase/articles/120066-how-do-i-use-logging
You can see this crashes on Crashlytics dashboard if you look at the specific crash itself.
The recommended way to add custom logging to your app is:
Crashlytics.log(int priority, String tag, String msg)
I was searching for crash reports sent by users via Android device.
If the user enters any specific details in description section and clicks Send, where this report is sent? Is it sent to Google or to the developer's email address?
You can deduct that the feedback is sent only to Google from two points:
Below the checkmark for "Include system logs" you'll see them saying that your system info will be sent to Google and a lot of legal policies for data manipulation since the feedback will contain sensitive information.
Normal crash reports contain information about the stack trace and some device information. If you will check the system info, you'll see a lot of sensitive information, information that Google keeps only for them in order to solve the problem themselves, since sending private information about your user to any developer would not be good idea.
When this kind of crashes take place, it's not your fault(usually) as a developer. If your app crashes constantly, then maybe you should try to open an issue and see what Google has to say about it. For example, the Facebook app crashes on a daily basis for me with the same behaviour, but I didn't find any reason for this.
I need to get logs which is stored as a log file in end user device, for getting that I can implement send feedback option and make user send the file to a email address given in intent.
But I need something better than this like google analytics or some other logging stuff which is easy to use where we can upload a file, and still manage other log events too.
You can use Firebase, it's have many feature to use.
Report Crashes on Android
Firebase Crash Reporting creates detailed reports of the errors in your app. Errors are grouped into issues based on having similar stack traces, and triaged by the severity of impact on your users. In addition to receiving automatic reports, you can log custom events to help capture the steps leading up to a crash.
You can watch docs in here: https://firebase.google.com/docs/crash/android
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.
I was just using Sports Tracker when it crashed, and when I pressed "Report" button to report the crash, I'm given a simple input field asking for a comment regarding the crash.
However, pressing "preview" will give me insight of what data is being send with the crash log. The amount of data is actually immense, including date/time, device name/version, system log, stack trace etc. All kinds of usable data.
From logcat I can see that this is com.google.android.feedback activity.
The question is, is this something Sports Tracker developers implemented themselves, or is it the default crash report every android user has installed on their phones? In other words, do all my apps (=the ones I've written and posted to Play Store) already have this function, or is it something I could/should implement myself**?
I have received some crash reports via android's build in crash reporting service, but it doesn't really give me any useful data (besides stack trace). Or is it just that the crash reporting on developer's dashboard is still far from complete?
I don't know about this special feedback activity. I'm currently using the ACRA system that it's really easy to use and give me useful bug reports. Let's have a look on it for your bug report.
I am sure they must be using one of these.
ACRA is great as well as try ZUbhium, it comes with silent crash reporting & in app support desk. So whenever application crashes, it captures more meaningful data and does analysis onit .
You can either add Zubhium as backend to ACRA & view advanced crash reports or use ZubhiumSDK. Both do excellent job.
Actually TestPoke is a beta testing platform that allow you to see all crashes your android app fall in, even thought they notify you when such thing happens through it Android App.
http://www.testpoke.com