环信集成时常见错误

1、官方文档是2.0+的介绍,里面的jar包名不同,所以导致内部的类所用的包名也不同个,集成时注意:

       com.easemob.chat.EMChatService(2.0+) com.hyphenate.chat.EMChatService(3.0+)

2、application中初始化的时候注意:

        EMChat.getInstance().setDebugMode(true);//在做打包混淆时,要关闭debug模式,避免消耗不必要的资源

3、在MyApplication中初始化环信时调用的EMChat.getInstance().init(this);方法一定要保证执行。

         首先,记得在清单文件的application标签下注册下我们创建的Myapplication  ,也就是在application标签下加入:
         android:name=".Myapp"//这个是android studio下的格式,如果用eclipse需要放入全类名

                 如果是以上原因导致的inti()方法没执行,会在环信注册功能的时候    报:Can't create handler inside thread that has not calledLooper.prepare()错误

         另外,环信文档中说明的为了防止初始化两次,让app中有第三方服务的时候写入以下代码:

       

1  
2 if (processAppName == null ||!processAppName.equalsIgnoreCase("com.easemob.chatuidemo")) {
3     Log.e(TAG, "enter the service process!");
4     //"com.easemob.chatuidemo"为demo的包名,换到自己项目中要改成自己包名
5  
6     // 则此application::onCreate 是被service 调用的,直接返回
7     return;
8 }                     

这个加入后会使得initial()方法返回false ,注册时抛出: 注册失败:AppKey is not set  的异常信息。具体为什么可以参考以下博客,在此感谢博主分享

http://blog.csdn.net/gly742279097/article/details/43446973

             

原文地址:https://www.cnblogs.com/epmouse/p/5360607.html