腾讯Bugly接入

MTA支持Java和Native异常捕获,其中Java Crash模块默认集成在MTA主体jar包中,Native Crash(即c/c++或so的异常捕获)需要额外添加so文件,并调用API启用,若您的工程涉及到Native编码,建议打开上Native Crash模块,否则,不需要额外添加这部分的文件。

Java Crash:使用新的mta 3.x.x.jar替换老版。

Native Crash:libMtaNativeCrash_v2.so,删除老的ibMtaNativeCrash.so,需要注意不同ABI的文件存放,具体见下。

MTA Native Crash支持当前Android系统所支持的所有架构:

armeabi

armeabi-v7a

arm64–v8a

x86

x86_64

mips

mips64

在集成过程中,一定要注意不同架构SO库文件的存放,否则可能会引起问题,总的原则是:只保留工程所支持的架构SO,不支持的SO千万不要额外导入。下面举例说明。

集成前:假设libMyCustom.so为实际工程的SO文件,所支持架构列表只有armeabi、armeabi-v7a、arm64-v8a三种。

集成后:根据只保留工程所支持SO架构的原则,那么只需要把Mta Native Crash对应的架构下的so文件复制到工程对应的目录中即可,即MTA armeabi的libMtaNativeCrash_v2.so复制到工程对应的armeabi目录下,注意一定要匹配,保持支持的架构目录的so文件一致,而不支持的架构不需要添加,一个集成带native crash模块的MTA后的工程示例见下图。

1.2. 工程配置

主要的配置参考MTA的接入配置功能,下面列举AndroidMenifest.xml文件的配置部分。

……工程application指标的的其它配置

android:name=”TA_APPKEY”

android:value=”A91LM44JGFLV” />

android:name=”InstallChannel”

android:value=”应用宝” />

android:name=”com.tencent.mid.api.MidProvider”

android:authorities=”您的APP包名.TENCENT.MID.V3″

android:exported=”true” >

1.3. application配置

StatService.setContext(app);

// 这个是开启Mta的统计功能

StatService.registerActivityLifecycleCallbacks(app);

StatCrashReporter crashReporter = StatCrashReporter.getStatCrashReporter(app);

// 开启异常时的实时上报

crashReporter.setEnableInstantReporting(true);

// 开启java异常捕获

crashReporter.setJavaCrashHandlerStatus(true);

// 开启Native c/c++,即so的异常捕获

// 请根据需要添加,记得so文件

crashReporter.setJniNativeCrashStatus(true);

// crash时的回调,业务可根据需要自选决定是否添加

crashReporter.addCrashCallback(new StatCrashCallback() {

@Override

public void onJniNativeCrash(String tombstoneString) {

// native dump内容,包含异常信号、进程、线程、寄存器、堆栈等信息

// 具体请参考:Android原生的tombstone文件格式

log(“MTA StatCrashCallback onJniNativeCrash:\n” + tombstoneString);

}

@Override

public void onJavaCrash(Thread thread, Throwable ex) {

//thread:crash线程信息

// ex:crash堆栈

log(“MTA StatCrashCallback onJavaCrash:\n”, ex);

}

});

    原文作者:南悦客栈
    原文地址: https://www.jianshu.com/p/5a479219d23b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞