本篇文章會就集成騰訊云IM碰到的部分問題進(jìn)行匯總绍豁,問題如下:
問題1:方法數(shù)超過63500?
1缓升、在build.gradle中添加:multiDexEnabled true(DefaultConfig中配置)
2、加入依賴‘compile ‘com.android.support:multidex:1.0.1’’
3、讓應(yīng)用的Application類直接使用或者繼承MultiDexApplication
4剔交、如果你想使用自定義的Application,又不想繼承MultiDexApplication改衩,那么可以在attachBaseContext方法里執(zhí)行MultiDex.install(base)
問題2:so庫的導(dǎo)入岖常?
問題描述:集成IM完成后,運(yùn)行葫督!可能會出現(xiàn)初始化失敗問題竭鞍,這時候一般都是配置出了問題,再好好對比下橄镜,對應(yīng)jar包是否導(dǎo)入偎快,清單文件中,是否都已配置洽胶;如果都沒有問題晒夹,就很有可能是so庫導(dǎo)入除了問題!(混淆出問題一般打包時候會出現(xiàn)各種找不到文件的報錯)
以下是我項目的導(dǎo)入so庫的代碼姊氓;(注意了:五個目錄下的so庫丐怯,本人建議都導(dǎo)入。其實這五個目錄里翔横,內(nèi)容是完全一樣的读跷,之所以導(dǎo)入全部,主要是為了適配不同手機(jī)cpu禾唁。一般so庫都是這樣效览,第三方庫可能處理了些膨,于是只需導(dǎo)入,armeabi钦铺、arm64-v8a和x86這幾個so庫订雾。但是經(jīng)本人親測,大家還是都加吧T_T)
注:一般導(dǎo)入so庫矛洞,常用的有兩種方法:
1洼哎、項目切換到Android目錄下,在app目錄下創(chuàng)建一個JniLibs目錄將so庫放入其中沼本,即可噩峦;
2、直接放在libs目錄中抽兆,但需要在sourceSets中添加jniLibs.srcDirs = ['libs'];申明so庫的位置识补,以上寫法是聲明,直接放在libs目錄下辫红。但如果放在libs子文件夾下凭涂,可以參考上面截圖的寫法;
分析:gradle文件中贴妻,配置jniLibs.srcDirs = ['libs']切油,這類型代碼其實就是聲明so庫的具體位置;一般默認(rèn)是jinLibs文件夾下名惩,如果改放到libs目錄下澎胡,都需要重新聲明;
問題3:打包出錯娩鹉,各種找不到類的警告攻谁?
一般情況下,錯誤往往是因為配置出錯弯予,可能是資源導(dǎo)入有問題戚宦,檢查so庫和jar包
注:一般導(dǎo)入so庫,常用的有兩種方法:
一般情況下熙涤,錯誤往往是因為配置出錯阁苞,可能是資源導(dǎo)入有問題困檩,檢查so庫和jar包祠挫;
然后還有可能就是混淆規(guī)則添加有誤;
#------------------騰訊云通信----------------------------------
-keepclass com.tencent.**{*;}
-dontwarncom.tencent.**
-keepclass tencent.**{*;}
-dontwarntencent.**
-keepclass qalsdk.**{*;}
-dontwarnqalsdk.**
#------------------小米推送----------------------------------
-keepclass com.sinosoft.nanniwan.im.imutil.MiPushMessageReceiver {*;}
-dontwarncom.xiaomi.push.**
#------------------華為推送----------------------------------
-keepclass com.huawei.android.**{*;}
-dontwarncom.huawei.android.**
-keepclass com.baidu.mapapi.**{*;}
-dontwarncom.baidu.mapapi.**
#------------------java.nio------------------------
-dontwarnorg.codehaus.**
-dontwarnjava.nio.**
-dontwarnjava.lang.invoke.**
然后就是對應(yīng)的類需要添加相應(yīng)的混淆規(guī)則悼沿;
問題4:覆蓋安裝后等舔,如果不重新登錄,消息頁面顯示空數(shù)據(jù)糟趾?
引發(fā)問題原因:覆蓋安裝之后慌植,之前的登錄信息甚牲,并未被清空,而是繼續(xù)保持原來的登錄狀態(tài)蝶柿;而我IM賬號的登錄丈钙,只是在登錄之后做的處理(使用新增的接口,獲取用戶的uid)交汤,所以覆蓋安裝后雏赦,并沒有獲取到uid,也無法自動登錄芙扎。以至于出現(xiàn)無法發(fā)送消息星岗,發(fā)送消息時間顯示異常等情況;
解決辦法:在首頁戒洼,判斷是否登錄俏橘,并判斷是否有儲存uid,如果有圈浇,根據(jù)是否需要登錄寥掐,判斷是否登錄;如果沒有磷蜀,重新請求接口曹仗,進(jìn)行存儲并登錄;
問題5:拍照蠕搜,未兼容android7.0系統(tǒng)以及emoji表情顯示問題怎茫?
見上一篇簡書;