大概描述一下發生情況:
硬件環境:
手機:小米6;
Android版本:Android 7.1.1;
沙雕融雲IM的SDK:
應該是目前爲止最新版的,上圖:
簡單的描述一下,集成的流程:
Step 1. 按沙雕IM的SDK官網開發文檔的集成步驟,把你下載下來的SDK解壓並將所有能Import Model到你自己的項目裏的文件都Import進去,不能Import的,直接扔到Libs裏,然後在App的gradle裏添加引用,不會添加的自己百度找;
Step 2. 在你項目新建個類並集成Application,然後在Manifest裏添加引用,哦對了,別忘了在Manifest裏添加各種權限;
Step 3. 複製下面代碼,到你新建的Application的onCreate裏:
/**
* 初始化融雲IM
*/
private void initRongYun() {
if (getApplicationInfo().packageName.equals(getCurProcessName(getApplicationContext()))) {
// 如果需要第三方推送,請加下面這端代碼,如不需要請跳過
// PushConfig config = new PushConfig.Builder()
// .enableHWPush(true)
// .enableMiPush("小米Id", "小米Key")
// .enableMeiZuPush("魅族Id", "魅族Key")
// .enableFCM(true)
// .build();
// RongPushClient.setPushConfig(config);
// 以上都是第三方推送的代碼,下面這一句話就是註冊.
RongIM.init(this);
}
}
public static String getCurProcessName(Context context) {
int pid = android.os.Process.myPid();
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningAppProcessInfo appProcess : activityManager.getRunningAppProcesses()) {
if (appProcess.pid == pid) {
return appProcess.processName;
}
}
return null;
}
粘上沒?粘上了之後,跑一下,崩沒崩? 沒崩?瞅一眼你手機的Android版本,是不是7.0以下的?崩了?那就對了,你肯定會合計,我特麼按照你說的這麼搞,咋還崩了呢?不好意思,我說的也都是沙雕融雲IM官網的開發文檔集成的步驟,那咋還崩了呢?我當時也急眼了,但急眼並不能解決問題,下面我們看下錯誤信息:
WTF?我還沒調用融雲IM的接口,爲毛就提示我token is empty!了呢?!
來吧,我告訴你原因,其實因爲啥我也不知道,但是我知道咋解決,我查了老鼻子文檔和百度之後,發現個事情,爲毛別人家下載的SDK都有一個名叫“libsqlite.so”的文件,而我的項目裏卻沒有?那麼問題指定是出在這裏了。
廢話少說,直接上這個so庫的文件了,使用方法:
下載 → 解壓 → 看你自己項目裏的libs裏都有啥文件夾 → 把這些so庫複製粘貼進去 → 然後重新Make Build一下子 → 然後再跑一下項目 → 然後就特麼不崩了! → 但是還是會提示 token is empty! → 那就不影響啥了吧?從服務器獲取到token之後再connect連上沙雕融雲IM的服務器就OK了。
下載地址:
https://download.csdn.net/download/sinat_31490099/11078627
個人觀點,僅供參考,不喜勿噴,想噴勿擾。