【Android】3.5.3版本SDK,无法初始化

按照开发文档在onCreate中加入初始化语句,在执行了

EMClient.getInstance().init(applicationContext, options)


这句代码后APP直接闪退掉了,Logcat干干净净没有任何报错。
@Override
public void onCreate() {
super.onCreate();
applicationContext = this;
Data.settings = getSharedPreferences(PREFS_NAME, 0);
Data.user = getUser();
locationInfo = new LocationInfo();
initHXIM();
}

private void initHXIM() {
EMOptions options = new EMOptions();
// 默认添加好友时,是不需要验证的,改成需要验证
options.setAcceptInvitationAlways(false);
// 是否自动将消息附件上传到环信服务器,默认为True是使用环信服务器上传下载,如果设为 false,需要开发者自己处理附件消息的上传和下载
options.setAutoTransferMessageAttachments(true);
// 是否自动下载附件类消息的缩略图等,默认为 true 这里和上边这个参数相关联
options.setAutoDownloadThumbnail(true);
int pid = android.os.Process.myPid();
String processAppName = getAppName(pid);
// 如果APP启用了远程的service,此application:onCreate会被调用2次
// 为了防止环信SDK被初始化2次,加此判断会保证SDK被初始化1次
// 默认的APP会在以包名为默认的process name下运行,如果查到的process name不是APP的process name就立即返回

if (processAppName == null || !processAppName.equalsIgnoreCase(applicationContext.getPackageName())) {
Log.e("---初始化环信SDK---", "enter the service process!");

// 则此application::onCreate 是被service 调用的,直接返回
return;
}
//初始化
EMClient.getInstance().init(applicationContext, options);
//在做打包混淆时,关闭debug模式,避免消耗不必要的资源

EMClient.getInstance().setDebugMode(true);
}

private String getAppName(int pID) {
String processName = null;
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List l = am.getRunningAppProcesses();
Iterator i = l.iterator();
PackageManager pm = this.getPackageManager();
while (i.hasNext()) {
ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo) (i.next());
try {
if (info.pid == pID) {
processName = info.processName;
return processName;
}
} catch (Exception e) {
// Log.d("Process", "Error>> :"+ e.toString());
}
}
return processName;
}
已邀请:

lizg - 好久没有登陆了,回来了...

赞同来自:

您好,您集成的是easeui还是只有sdk?如果集成的只有sdk,您断点看下执行到哪里崩溃的,正常logcat会有打印,再尝试下有没有什么相关的错误信息。

要回复问题请先登录注册

知识价值的认可,源自您的赞赏

扫描二维码,你的支付将由imGeek代收后转给对方

×