Java - Android 融云IM与百度LBS结合的那些坑

融云IM与百度LBS结合的那些坑

​ 近来,由于项目需求的需要,需要在项目中集成百度LBS SDK以及融云IM SDK,首先遇到的就是第三方SDK兼容性问题,百度LBS与融云IM发生了排斥,产生了严重的问题:应用在启动后以及发生异常,爆出一些SO相关的异常。当然,在问题出现前,所有的相关的基础配置都是良好的。

05-02 12:51:08.476 13320-13320/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-02 12:51:08.476 13320-13320/? A/DEBUG: Build fingerprint: 'Xiaomi/cancro_wc_lte/cancro:6.0.1/MMB29M/7.4.27:user/release-keys'
05-02 12:51:08.476 13320-13320/? A/DEBUG: Revision: '0'
05-02 12:51:08.476 13320-13320/? A/DEBUG: ABI: 'arm'
05-02 12:51:08.476 13320-13320/? A/DEBUG: pid: 18575, tid: 18575, name: io.rong.push  >>> io.rong.push <<<
05-02 12:51:08.476 13320-13320/? A/DEBUG: signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x0
05-02 12:51:08.499 13320-13320/? A/DEBUG:     r0 b4c96f00  r1 becf79ac  r2 becf79b0  r3 00000001
05-02 12:51:08.499 13320-13320/? A/DEBUG:     r4 00000000  r5 becf79b0  r6 b4c96f00  r7 becf796c
05-02 12:51:08.500 13320-13320/? A/DEBUG:     r8 00000000  r9 b4cb6500  sl becf79b0  fp b4cb6500
05-02 12:51:08.500 13320-13320/? A/DEBUG:     ip a09741a9  sp becf7950  lr b4701a9b  pc a09741b8  cpsr 80070030
05-02 12:51:08.511 13320-13320/? A/DEBUG: backtrace:
05-02 12:51:08.512 13320-13320/? A/DEBUG:     #00 pc 000101b8  /data/data/**packagename**/files/libs/libBaiduMapSDK_base_v4_3_0.so
05-02 12:51:08.512 13320-13320/? A/DEBUG:     #01 pc 000eaa99  /system/lib/libart.so (art_quick_generic_jni_trampoline+40)
05-02 12:51:08.512 13320-13320/? A/DEBUG:     #02 pc 000e63a1  /system/lib/libart.so (art_quick_invoke_stub_internal+64)
05-02 12:51:08.513 13320-13320/? A/DEBUG:     #03 pc 00402aa3  /system/lib/libart.so (art_quick_invoke_static_stub+170)
05-02 12:51:08.513 13320-13320/? A/DEBUG:     #04 pc 007fbae4  [stack]

以上错误,最会让人怀疑是百度SDK的问题,然而,你可能会错怪它。其实这个问题是由于ndk编译架构的配置问题,这样说吧,百度的NDK兼容一下两个系统架构 armeabi ; 然而融云的只兼容armeabi-v7a, x86。由此,这就产生了分析,这里需要对此都兼顾一下,选择armeabi的,所以app.gradle里面应该这样配置:

ndk {
   abiFilters "armeabi"
}

现在可以再尝试编译一次,先恭喜你,大功告成!

你可能感兴趣的:(Java - Android 融云IM与百度LBS结合的那些坑)