Kotlin Catcher for Hawk.so
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.idea
app
gradle/wrapper
hawkcatcherkotlin
.gitignore
LICENSE
README.md
build.gradle
gradle.properties
gradlew
gradlew.bat
settings.gradle

README.md

Hawk android catcher

Сборщик ошибок

Эта библиотека обеспечивает сбор непроверяемых ошибок во время работы приложения и отправляет их в ваш https://hawk.so личный кабинет. Так же существует возможность отправлять отловленные в try-catch ошибки


Подключение

Для подключения библиотеки необходимо добавить в gradle maven репозиторий и ссылку с библиотеку. Пример ниже

    allprojects {
        repositories {
            jcenter()
            maven { url "https://jitpack.io" }
        }
   }
   ...
   dependencies {
    	implementation 'com.github.codex-team:hawk.kotlin:v1.0.4'
   }

Пример использования

Для активации прослушки ошибок, вы можете добавить в ваш класс (например)Application следующий код

var exceptionCatcher: HawkExceptionCatcher;
exceptionCatcher = HawkExceptionCatcher(this,"your hawk token");
try {
    exceptionCatcher.start();
} catch (Exception e) {
    e.printStackTrace();
}

Входные параметры

Context - текущий context приложения

Token - уникальный ключ авторизации(Например:0927e8cc-f3f0-4ce4-aa27-916f0774af51)

Примеры вывода:

{  
   "token":"your hawk token",
   "message":"java.lang.ArithmeticException: divide by zero",
   "stack":"java.lang.RuntimeException: Unable to start activity ComponentInfo{com.hawkandroidcatcher.akscorp.hawkandroidcatcher\/com.hawkandroidcatcher.akscorp.hawkandroidcatcher.SampleMainActivity}: java.lang.ArithmeticException: divide by zero",
   "brand":"Android",
   "device":"generic_x86",
   "model":"Android SDK built for x86",
   "product":"sdk_google_phone_x86",
   "SDK":"22",
   "release":"5.1.1",
}

Параметры вывода

message - название самой ошибки

stack - стек ошибки

brand - код поставщика android устройства

device - имя устройства в рамках индустриального дизайна(?)

model - общеизвестное имя android устройства

product - общее наименование продукции

SDK - версия SDK

release - версия андроида

Пример работы

Отлавливание UncheckedException

function myTask() {
	var d = 10 / 0;
}
...
myTask();

Отловленная ошибка будет соотвествовать формату JSON выше

Отправка отловленных исключений

function myTask() {
    try {
        var d = 10 / 0;
    } catch(e: Exception) {
        exceptionCatcher.logException(e); 
        //Данный метод формирует исключение в JSON и отправляет его
    }
}
...
myTask();

При этом ошибки, отловленные в try-catch без использования функции log() отправлены не будут

function myTask() {
    try {
        var d = 10 / 0;
    } catch(e: Exception) {
        e.printStackTrace();
        //ошибка отправлена не будет
    }
}
...
myTask();