gpt4 book ai didi

android - 设置 Sentry.io 时出现问题。没有发送到 Sentry 面板

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:17:17 25 4
gpt4 key购买 nike

我将为我正在处理的 Android 项目使用 Sentry。我公司使用的是自托管的 Sentry,版本 9.0.0

我关注了Sentry.io Installation Guide .

这些权限已添加到 list 中:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

这是我的app/build.gradle 文件:

dependencies {
...
implementation 'io.sentry:sentry-android:1.7.10'
implementation 'org.slf4j:slf4j-nop:1.7.25'
}

apply plugin: 'io.sentry.android.gradle'

sentry {
autoProguardConfig true
autoUpload true
}

这是我的顶级项目 build.gradle :

dependencies {
...
classpath 'io.sentry:sentry-android-gradle-plugin:1.7.10'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}

这是 MainActivity:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Context ctx = this.getApplicationContext();
String sentryDsn = "https://MyPublicKey:MySecretKey...";
Sentry.init(sentryDsn, new AndroidSentryClientFactory(ctx));

setContentView(R.layout.activity_main);

Sentry.capture("This Is My First Log!");
...
}

但没有发送到 Sentry 面板。有什么问题?

有什么想法吗?

最佳答案

这不是我需要的答案,但说起来也不错

最后我找到了使用此类将日志发送到 Sentry 面板的解决方案:Sentry.class

然而它需要一些改变才能工作,但现在它就像一个魅力。唯一让我担心的是,当我在 Sentry 面板中打开一个事件时,这个警告将显示在页面底部:

This event was reported with an old version of the java SDK.

使用 Sentry.class 初始化和捕获日志将其代码复制到您在项目中创建的新类中,并找到以下代码:

header.append("Sentry ")
.append(String.format("sentry_version=%s,", sentryVersion))
.append(String.format("sentry_client=sentry-android/%s,", BuildConfig.SENTRY_ANDROID_VERSION))
.append(String.format("sentry_key=%s,", publicKey))
.append(String.format("sentry_secret=%s", secretKey));

并将 BuildConfig.SENTRY_ANDROID_VERSION 替换为包含 Sentry 库版本的字符串。例如,我在我的 app/build.gradle 中添加了这个依赖项:

implementation 'io.sentry:sentry-android:1.7.10'

现在我应该将 BuildConfig.SENTRY_ANDROID_VERSION 替换为 "1.7.10"

同时替换这一行中的字符串:

conn.setRequestProperty("User-Agent", "sentry-android/" + BuildConfig.SENTRY_ANDROID_VERSION);

并删除评论中的这一行:

* @see com.joshdholtz.sentry.Sentry#addHttpBreadcrumb(String, String, int)

现在您只需要通过将这行代码添加到您的 MainActivity 来添加初始化 Sentry:

SentryLog.init(this, yourDSN);

SentryLog 是包含 Sentry.class 代码的新类的名称。

注意:您必须添加更长的已弃用 DSN。

现在您可以通过添加以下行来测试它:

SentryLog.captureMessage("This Message Captured by Alireza Noorali.");

但我会很高兴得到更好的解决方案。

关于android - 设置 Sentry.io 时出现问题。没有发送到 Sentry 面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53277487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com