项目需要使用腾讯云sdk做直播,同时又集成bugly来做热更新,在集成完腾讯云sdk后项目在debug模式和release模式都正常,随后有集成bugly后,使用bugly生产debug版本的基线包,安装完成后会有如下异常:
java.lang.UnsatisfiedLinkError: No implementation found for
int[] com.tencent.rtmp.TXRtmpApi.getSDKVersion()
(tried Java_com_tencent_rtmp_TXRtmpApi_getSDKVersion and Java_com_tencent_rtmp_TXRtmpApi_getSDKVersion)
在查询完腾讯云官方文档后确定原因,可以先看一下项目gradle之前的配置
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ndk {
abiFilters "armeabi","armeabi-v7a"
}
}
}
再看看之后的
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ndk {
abiFilters "armeabi","armeabi-v7a"
}
}
debug {
ndk {
abiFilters "armeabi","armeabi-v7a"
}
}
}
问题就出来了,在构建类型中debug模式没有配置so文件目录,使用bugly打包时so文件没有被导入项目,导致TXRtmpApi.getSDKVersion()方法找不到,如此报出以上异常,同时在解决过程中也遇到其他问题,在此不一一记录了,但基本都在官方文档里有说明,比如集成bugly之后自定义的Application需要集成TinkerApplication,同时,Application里的逻辑需要放在自定义的继承自TinkerApplicationLike类里进行处理。