Android
We just released a new Logcat integration, which automatically creates breadcrumbs for your android.util.Log.*
calls.
Using Jetpack Compose? Measure composition and rendering time of your @Composable
functions using our performance metrics for Jetpack Compose.
Let us know if you have feedback through GitHub issues.
On this page, we get you up and running with Sentry's SDK, so that it will automatically report errors and exceptions in your application.
Don't already have an account and Sentry project established? Head over to sentry.io, then return to this page.
Install
Sentry captures data by using an SDK within your application’s runtime.
The easiest way to get started is to install the Sentry Android Gradle plugin to your app module's build.gradle
file.
app/build.gradle
buildscript {
repositories {
mavenCentral()
}
}
plugins {
id "com.android.application"
id "io.sentry.android.gradle" version "3.10.0"
}
The plugin version 3.10.0
will automatically add the Sentry Android SDK (version 6.22.0
) to your app.
Configure
Configuration is done via the application AndroidManifest.xml
Here's an example config which should get you started:
AndroidManifest.xml
<application>
<!-- Required: set your sentry.io project identifier (DSN) -->
<meta-data android:name="io.sentry.dsn" android:value="https://examplePublicKey@o0.ingest.sentry.io/0" />
<!-- enable automatic breadcrumbs for user interactions (clicks, swipes, scrolls) -->
<meta-data android:name="io.sentry.traces.user-interaction.enable" android:value="true" />
<!-- enable screenshot for crashes -->
<meta-data android:name="io.sentry.attach-screenshot" android:value="true" />
<!-- enable view hierarchy for crashes -->
<meta-data android:name="io.sentry.attach-view-hierarchy" android:value="true" />
<!-- enable the performance API by setting a sample-rate, adjust in production env -->
<meta-data android:name="io.sentry.traces.sample-rate" android:value="1.0" />
<!-- enable profiling when starting transactions, adjust in production env -->
<meta-data android:name="io.sentry.traces.profiling.sample-rate" android:value="1.0" />
</application>
Under the hood Sentry uses a ContentProvider
to initalize the SDK based on the values provided above. This way the SDK can capture important crashes and metrics right from the app start.
Additional options can be found on our dedicated options page.
If you want to customize the SDK init behaviour, you can still use the Manual Initialization method.
Verify
This snippet includes an intentional error, so you can test that everything is working as soon as you set it up.
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import java.lang.Exception;
import io.sentry.Sentry;
public class MyActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
throw new Exception("This is a test.");
} catch (Exception e) {
Sentry.captureException(e);
}
}
}
Learn more about manually capturing an error or message in our Usage documentation.
To view and resolve the recorded error, log into sentry.io and open your project. Clicking on the error's title will open a page where you can see detailed information and mark it as resolved.
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) to suggesting an update ("yeah, this would be better").
- Package:
- maven:io.sentry:sentry-android
- Version:
- 6.22.0
- Repository:
- https://github.com/getsentry/sentry-java