Android之Sentry接入
前沿
在Android应用中接入Sentry可以帮助你捕获和监控应用中的错误和异常。Sentry 是一个开源的错误跟踪工具,支持多种平台,包括 Android。特别是能够私有化部署。
1.创建项目
2.AndroidManifest.xml 配置
<!-- Required: set your sentry.io project identifier (DSN) -->
<meta-data android:name="io.sentry.dsn" android:value="https://062854xxxxxx@sentry.xxxx.com/12" />
<!-- 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" />
以上是sentry集成的官方指引内容。
另外我的还配置了:
<meta-data android:name="io.sentry.auto-init" android:value="true" />
<meta-data
android:name="io.sentry.environment"
android:value="${SENTRY_ENVIRONMENT}" />
因为我的 App 不需要上架,所以配置了自动初始化。
另外还配置了 environment,方便区分不同渠道或环境。
至于 DNS 查看的路径是:
不过,首次集成会有集成指南,直接复制里面的内容即可。
3.build.gradle 配置
3.1 builTypes 配置
buildTypes {
getByName("debug") {
manifestPlaceholders["SENTRY_ENVIRONMENT"] = "debug"
}
getByName("release") {
manifestPlaceholders["SENTRY_ENVIRONMENT"] = "release"
}
}
3.2 sentry 配置
sentry {
org = "sentry"
projectName = "awareness"
authToken = "sntrys_eyJpYXQiOjExxxx"
autoUploadProguardMapping = true
}
org 名称:
org: 就是这个sentry,build.gradle.kts中sentry配置用到的org。
authToken 路径:
如果没有的话,需要新建。
projectName 就是创建的项目名称
autoUploadProguardMapping 解决是否需要自动上传打release包时生成的mapping.txt,也就是崩溃时,日志中的混淆后的代码能够正常显示。
上传成功可用查看:
可用看到上传的内容。
当然设置为 false后,查看崩溃日志时,就无法准确定位出错的代码位置了。
当然如果你的代码没有混淆的话,也是不用开启这个功能的。
4.参数配置
4.1 导入
libs.versions.toml
[versions]
sentryAndroid = "7.22.0"
[libraries]
sentry-android = { module = "io.sentry:sentry-android", version.ref = "sentryAndroid" }
implementation(libs.sentry.android)