Android集成腾讯云IM(下篇)

本篇文章会就集成腾讯云IM碰到的部分问题进行汇总,问题如下:

问题1:方法数超过63500?

1、在build.gradle中添加:multiDexEnabled true(DefaultConfig中配置)

2、加入依赖‘compile ‘com.android.support:multidex:1.0.1’’

3、让应用的Application类直接使用或者继承MultiDexApplication

4、如果你想使用自定义的Application,又不想继承MultiDexApplication,那么可以在attachBaseContext方法里执行MultiDex.install(base)

问题2:so库的导入?

问题描述:集成IM完成后,运行!可能会出现初始化失败问题,这时候一般都是配置出了问题,再好好对比下,对应jar包是否导入,清单文件中,是否都已配置;如果都没有问题,就很有可能是so库导入除了问题!(混淆出问题一般打包时候会出现各种找不到文件的报错)

以下是我项目的导入so库的代码;(注意了:五个目录下的so库,本人建议都导入。其实这五个目录里,内容是完全一样的,之所以导入全部,主要是为了适配不同手机cpu。一般so库都是这样,第三方库可能处理了,于是只需导入,armeabi、arm64-v8a和x86这几个so库。但是经本人亲测,大家还是都加吧T_T)

Android集成腾讯云IM(下篇)_第1张图片
im so库目录

注:一般导入so库,常用的有两种方法:

1、项目切换到Android目录下,在app目录下创建一个JniLibs目录将so库放入其中,即可;

2、直接放在libs目录中,但需要在sourceSets中添加jniLibs.srcDirs = ['libs'];申明so库的位置,以上写法是声明,直接放在libs目录下。但如果放在libs子文件夹下,可以参考上面截图的写法;

分析:gradle文件中,配置jniLibs.srcDirs = ['libs'],这类型代码其实就是声明so库的具体位置;一般默认是jinLibs文件夹下,如果改放到libs目录下,都需要重新声明;

问题3:打包出错,各种找不到类的警告?

一般情况下,错误往往是因为配置出错,可能是资源导入有问题,检查so库和jar包

注:一般导入so库,常用的有两种方法:

一般情况下,错误往往是因为配置出错,可能是资源导入有问题,检查so库和jar包;

然后还有可能就是混淆规则添加有误;

#------------------腾讯云通信----------------------------------

-keepclass com.tencent.**{*;}

-dontwarncom.tencent.**

-keepclass tencent.**{*;}

-dontwarntencent.**

-keepclass qalsdk.**{*;}

-dontwarnqalsdk.**

#------------------小米推送----------------------------------

-keepclass com.sinosoft.nanniwan.im.imutil.MiPushMessageReceiver {*;}

-dontwarncom.xiaomi.push.**

#------------------华为推送----------------------------------

-keepclass com.huawei.android.**{*;}

-dontwarncom.huawei.android.**

-keepclass com.baidu.mapapi.**{*;}

-dontwarncom.baidu.mapapi.**

#------------------java.nio------------------------

-dontwarnorg.codehaus.**

-dontwarnjava.nio.**

-dontwarnjava.lang.invoke.**

然后就是对应的类需要添加相应的混淆规则;

问题4:覆盖安装后,如果不重新登录,消息页面显示空数据?

引发问题原因:覆盖安装之后,之前的登录信息,并未被清空,而是继续保持原来的登录状态;而我IM账号的登录,只是在登录之后做的处理(使用新增的接口,获取用户的uid),所以覆盖安装后,并没有获取到uid,也无法自动登录。以至于出现无法发送消息,发送消息时间显示异常等情况;

解决办法:在首页,判断是否登录,并判断是否有储存uid,如果有,根据是否需要登录,判断是否登录;如果没有,重新请求接口,进行存储并登录;

问题5:拍照,未兼容android7.0系统以及emoji表情显示问题?

见上一篇;

你可能感兴趣的:(Android集成腾讯云IM(下篇))