1.問題
a.遇到j(luò)ava.lang.UnsatisfiedLinkError 異常
b.接入成功之后發(fā)送圖片文件拍照之后 本地聊天列表不顯示(可能對(duì)方也收不到)
2.解決方案
問題a解決方案:
問題a.在環(huán)信社區(qū)都有解決方案(java.lang.UnsatisfiedLinkError: 的問題)其實(shí)主要是jni的問題 看了下原理就是armeabi不要這個(gè)包 將armeabi的文件考到armeabi-v7a ,但是我下載是3.3.2版本的根本就沒有這個(gè)armeabi包 已經(jīng)存在armeabi-v7a喊儡。我個(gè)人認(rèn)為應(yīng)該是沒找到相應(yīng)的so文件的問題帜羊。因此本人查看project目錄 這是在EaseUI中存在不存在armeabi-v7a等相關(guān)包 于是試著將下載的sdk中l(wèi)ib文件拷貝到EaseUI中Ilib和app的lib迹鹅。媽蛋曼库!居然OK了肌蜻。
總結(jié):
接入環(huán)信時(shí),如果不使用環(huán)信的UI(EASEUI)就一般不會(huì)出現(xiàn)遇到j(luò)ava.lang.UnsatisfiedLinkError 異常润绎。這是使用官方接入方式?jīng)]問題拧咳。BUT,如果使用EaseUI的話 那么在EaseUI的話那么,在EaseUI也要拷入相應(yīng)lib(重點(diǎn)是armeabi-v7a相關(guān)文件夾)碍粥。 PS:如果使用EaseUI的話鳖眼,千萬不要使用gradle導(dǎo)入環(huán)信SDK,使用手動(dòng)導(dǎo)入的方式嚼摩。不信的話 你們可以試試钦讳。具體報(bào)什么錯(cuò)誤我忘記了矿瘦。
問題b解決方案:
問題b很奇葩,本人在接入環(huán)信時(shí)蜂厅,寫了個(gè)小Demo,可以發(fā)圖片文件拍照發(fā)圖片匪凡。But,接入項(xiàng)目工程時(shí)膊畴,發(fā)送圖片掘猿,文件,拍照?qǐng)D片時(shí)唇跨,消息不顯示稠通,也沒有發(fā)出去。在環(huán)信社區(qū)也沒有找到相關(guān)問題买猖,然后本人想了下出現(xiàn)這種問題的共性都是挑戰(zhàn)界面后再回退到自己的界面改橘。由于本人接入的聊天是環(huán)信EaseChatFragment聊天,調(diào)試打斷點(diǎn)看看onActivityResult中進(jìn)入沒有玉控。因?yàn)閺牧奶斓酱蜷_其它Activity在回退到之前界面這個(gè)過程必定涉及到onActivityResult的回調(diào)飞主。結(jié)果調(diào)試證明,拍照之后返回時(shí)并沒有進(jìn)入onActivityResult高诺。知道問題根源碌识,就好辦了。因?yàn)槭窃贓aseChatFragment調(diào)用的是startActivityForResult()而不是getActivty().startActivityForResult()虱而。這個(gè)OK沒問題筏餐。然后就只是一種情況就是EaseChatFragment的持有者Activity重寫了onActivityResult()。結(jié)果本人一看,本人的ChatActivity的父類果然重寫了牡拇。要么不重寫onActivityResult魁瞪,要么ChatActivity就換一個(gè)父類就OK了。
總結(jié):
當(dāng)出現(xiàn)發(fā)送圖片惠呼,文件等一系列需要跳轉(zhuǎn)界面导俘,并且需要onActivityResult獲取返回值時(shí)這時(shí)。首先檢查跳轉(zhuǎn)方法是否是startActivityForResult()剔蹋。如果是startActivityForResult(),在檢查該Fragments的Activity是否是重寫了onActivityResult趟畏,是的話就不能fragment的Activity重寫。PS:如果 使用startActivityForResult()進(jìn)行跳轉(zhuǎn) 并且Activity沒有重寫滩租,還是出現(xiàn)不能回調(diào)Fragment的onActivityResult赋秀。那么就是你使用了嵌套Fragment了。解決嵌套Fragemnt不能回調(diào)onActivityResult