在Android上使用Sentry for Qt的传输无效?

Invalid transport with Sentry for Qt on Android?

提问人:cj- 提问时间:1/4/2022 更新时间:1/11/2022 访问量:226

问:

在Android上为Sentry设置传输的正确方法是什么(使用Qt)?

我有一个使用Qt C++和Sentry构建的应用程序。Sentry 在大多数情况下运行良好,但它输出而不是发送任何事件。我遵循了Qt的操作方法,它没有提到设置传输。正确的使用类型是什么?discarding envelope due to invalid transport

尝试使用防撞板,但它说它在 Android 上不受支持。

将来,我也想在 iOS 上做日志,而 Sentry Native 似乎不支持,所以如果有人知道替代框架,我并不反对。

Android C++ Qt 哨兵

评论


答:

0赞 Bruno Garcia 1/4/2022 #1

Sentry Native SDK 本身与 Android 不兼容。它遗漏了允许它捕获崩溃和其他功能的重要位。

要在 Android 上使用 Sentry,您需要使用适用于 Android 的 Sentry SDK,它将 Sentry Native 与在 Android 上运行所需的正确修改捆绑在一起。

换句话说,Android 上的 Sentry Native 是通过 Sentry SDK for Android 安装的,其中包括 Android 上所需的 stackwalker 和传输。在 iOS 上,您可以使用 Sentry Cocoa(Crashpad 在那里也不起作用)。

您可以按照有关此问题的建议将 Qt 集成到 Android 应用程序中:https://github.com/getsentry/sentry-java/issues/1626

评论

0赞 cj- 1/7/2022
我已经使用Qt Integration手动编译了Sentry。您具体建议进行哪些更改?
0赞 Bruno Garcia 1/11/2022
您是否直接添加适用于 Android 的 Sentry SDK,而不是 Sentry Native?
0赞 cj- 1/11/2022
我只是通过使用 CMake 编译它并将动态库包含在静态库(即应用程序)中来添加 sentry-native。
0赞 Bruno Garcia 1/11/2022
正如我在回答中描述的那样,这是行不通的。我会进一步澄清