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