Skip to content

RohitSurwase/UCE-Handler

Repository files navigation

Project Status: Active – The project has reached a stable, usable state and is being actively developed. GitHub stars

UCE Handler

Android library which lets you take control of Android App's uncaught exceptions. View, Copy, Share, Save and Email exceptions details including other useful info easily.

Tracking down all exceptions is the crucial part of the development. We could just expect that we have handled all exceptions. But whatever we do, we come across it with the so-called pop-up saying “Unfortunately, App has stopped”, that is why it is called uncaught-exceptions.

Why should you use this library? Read the answer - Handling Uncaught-Exceptions in Android

Example Animation Example Animation

Features

  • Android App lifecycle aware.
  • Catches all uncaught exceptions gracefully.
  • Displays separate screen with multiple options whenever an App crashes.
  • View, Copy, Share, and Save crash logs easily.
  • Email crash log along with the .txt file with multiple developers/receipients.
  • Completely close the crashed/unstable Application.

Logged Information

  • Device/mobile info.
  • Application info.
  • Crash log.
  • Activity track. //optional
  • All log files are placed in a separate folder.

Each Log file is named upon App's name so you can identify and distinguish files easily if you have added this library in multiple projects/applications.

Example

Download the example app here

Getting Started

Add this library to your Android project and initialize it in your Application class. Additionaly you can add developer's email addresses who will get the email of crash log along with the .txt file attached.

Setup

In your Project's build.gradle file:

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}

In your Application's or Module's build.gradle file:

dependencies {
        implementation 'com.github.RohitSurwase.UCE-Handler:uce_handler:1.4'
}

In your Application class:

  • Initialize library using builder pattern.

      public class MyApplication extends Application {
      @Override public void onCreate() { 
      	...
      	// Initialize UCE_Handler Library
      	new UCEHandler.Builder(this).build();
      } }
    
Kotlin way of initialization
    UCEHandler.Builder(applicationContext).build()
For those of you who are still using Eclipse + ADT, you need to add UCEDefaultActivity manually in your App's manifest. (As suggested by Caceresenzo)
<application>
    ...
    <activity
	android:name="com.rohitss.uceh.UCEDefaultActivity"
	android:process=":error_activity"/>
</application>

Optional Parameters

.setUCEHEnabled(true/false)

// default 'true' => Enable/Disable UCE_Handler.

.setTrackActivitiesEnabled(true/false)

// default 'false' => Choose whether you want to track the flow of activities the user/tester has taken or not.

.setBackgroundModeEnabled(true/false)

// default 'true' => Choose if you want to catch exceptions while app is in background.

.addCommaSeparatedEmailAddresses("abc@gmail.com, pqr@gmail.com,...)

// default - empty => Add comma separated email addresses who will receive the crash logs.

'Save Error Log' will work only if your app already has storage permission as library does not ask for it.

Authors & Contributers

License

Copyright © 2018 - 2019 Rohit Sahebrao Surwase. This project is licensed under the Apache License, Version 2.0 - see the LICENSE.md file for details