Crashes
Library in itself catch unhandled exceptions and save them into file. Every time the library starts, it convert saved crashes to hit and sends crash report to Gemius servers (under special gemius id provided in the configuration). Crash monitor is initialized automatically inside ContentProvider and uses default catching unhandled exceptions mechanism. It allow also saving already handled exceptions with static method CrashProvider.saveCrash(Context context, Exception e).
Crash hit example:
{
"ts": 1572258312237,
"crash": [
{
"stacktrace": "java.lang.RuntimeException: Unable to start receiver pl.spicymobile.mobience.sdk.datacollectors.permission.SDKAppPermissionsBroadcastReceiver: java.lang.UnsupportedOperationException\n\tat android.app.ActivityThread.handleReceiver(ActivityThread.java:3803)\n\tat android.app.ActivityThread.-wrap18(Unknown Source:0)\n\tat android.app.ActivityThread$H.handleMessage(ActivityThread.java:2100)\n\tat android.os.Handler.dispatchMessage(Handler.java:109)\n\tat android.os.Looper.loop(Looper.java:166)\n\tat android.app.ActivityThread.main(ActivityThread.java:7555)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:963)\nCaused by: java.lang.UnsupportedOperationException\n\tat pl.spicymobile.mobience.sdk.datacollectors.permission.SDKAppPermissionsBroadcastReceiver.onReceive(SDKAppPermissionsBroadcastReceiver.java:63)\n\tat android.app.ActivityThread.handleReceiver(ActivityThread.java:3793)\n\t... 8 more\n",
"app_version": "1.0",
"os_version": "8.1.0",
"sdk_version": "1.0.1.39-SNAPSHOT",
"device": "HUAWEI DUB-LX1",
"timestamp": 1572258297244
}
]
}