A_5C5T7 2024-09-30 10:57 采纳率: 0%
浏览 3
问题最晚将于10月08日00:00点结题

sentry如何捕获上传Android ndk 崩溃

已经在Android客户端集成了sentry.
版本:
compileOnly 'io.sentry:sentry-android:1.7.27'
compileOnly 'org.slf4j:slf4j-nop:1.7.25'

在APP启动之后初始化:
Sentry.init(dsn, new AndroidSentryClientFactory(getApplicationContext()));

现在可以正常上传Android异常:
Sentry.capture(exception);

问题:
在这个基础上如何捕获上传Android NDK的崩溃.
即捕获Android native的 C++ 的相关崩溃.
C++以so的方式加载进来供Android使用.

  • 写回答

12条回答 默认 最新

  • 阿里嘎多学长 2024-09-30 10:57
    关注

    AIGC生成:


    Sentry捕获Android NDK崩溃

    Sentry可以捕获Android NDK崩溃,但是需要在NDK代码中手动将崩溃信息发送到Sentry服务器。下面是一个简单的示例:

    首先,在Android.mk文件中添加以下代码:

    LOCAL_LDLIBS += -lsentry
    

    然后,在你的C++代码中添加以下代码:

    #include <sentry.h>
    
    void crash() {
        // 模拟崩溃
        abort();
    }
    
    int main() {
        // ...
        crash();
        return 0;
    }
    

    在crash()函数中,使用abort()函数模拟崩溃。然后,在main()函数中调用crash()函数。

    在crash()函数中,使用Sentry的API将崩溃信息发送到Sentry服务器:

    void crash() {
        // 模拟崩溃
        abort();
    
        // 获取崩溃信息
        Sentry::CrashReport report = Sentry::captureException();
    
        // 发送崩溃信息到Sentry服务器
        Sentry::transport(report);
    }
    

    在上面的代码中,我们使用Sentry::captureException()函数获取崩溃信息,然后使用Sentry::transport()函数将崩溃信息发送到Sentry服务器。

    最后,在Android客户端的Sentry配置文件中添加以下代码:

    [transport]
    dsn = "YOUR_DSN_HERE"
    

    将YOUR_DSN_HERE替换为你的Sentry DSN。

    这样,Sentry就可以捕获Android NDK崩溃并将崩溃信息发送到Sentry服务器。


    评论

报告相同问题?

问题事件

  • 创建了问题 今天

悬赏问题

  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?
  • ¥15 nasm x86 变量归零
  • ¥65 Tree 树形控件实现单选功能,可以使用element也可以手写一个,实现全选为全选状态
  • ¥60 寻抓云闪付tn组成网页付款链接
  • ¥16 寻字节跳动内部人员帮推简历
  • ¥20 如何通过sentry收集上传Android ndk的崩溃?