注册

EMMessage.createSendMessage(EMMessage.Type.TXT) 创建空值

EMConversation conversation = EMChatManager.getInstance().getConversation(userName);
EMMessage message = EMMessage.createSendMessage(EMMessage.Type.TXT);
这个自定义 消息,如果在 server上执行,就会报错
07-08 05:01:38.759: E/AndroidRuntime(4142): java.lang.NullPointerException
07-08 05:01:38.759: E/AndroidRuntime(4142): at android.preference.PreferenceManager.getDefaultSharedPreferencesName(PreferenceManager.java:374)
07-08 05:01:38.759: E/AndroidRuntime(4142): at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:369)
07-08 05:01:38.759: E/AndroidRuntime(4142): at com.easemob.chat.EMSessionManager.getLastLoginUser(Unknown Source)
07-08 05:01:38.759: E/AndroidRuntime(4142): at com.easemob.chat.EMMessage.createSendMessage(Unknown Source)

在activity上使用 相同的接口就是ok的,请确认这个是不是需要满足一定条件才行,谢谢

已邀请:

lizg - ……

赞同来自: fat1

@fengbenpao 不要在service里调用
仔细想想,应该是这个接口里面调用了  getDefaultSharedPreferences   由于切换到后台server的时候, 导致当前的 package变化,  所以去获取该 sharePreferences的时候,为空导致的。  
 
请测试一下这个接口   
在 server上执行是什么意思
就是我将这个接口放在Service中执行,不放在activity执行。

要回复问题请先登录注册