Android報錯:Channel is unrecoverably broken and will be disposed!

最近在使用Android客戶端使用Netty做重連接服務器(服務器關閉)的時候,出現了這個錯誤,每次都是固定在5分鐘左右的時候出現
Channel is unrecoverably broken and will be disposed!
出現後App會出現閃退情況。
這個錯誤,後來在網上查閱資料,發現Android很多情況都會出現這個問題,但是Android Studio也沒提示到底哪裏報錯。只有自己在做重連接的地方慢慢找了。後來發現每次做重連接的時候都會new一個新的對象,重複的new一個對象,也沒有做回收出來,導致了內存溢出。
後來將對象置爲成員變量,如下:

 private static NioEventLoopGroup group = null;

在使用的地方進行判斷:

 if(group == null){
                Log.e(TAG,"group爲空");
                 group = new NioEventLoopGroup();
            }

之後第一次連接的時候纔會new一個對象,也不會出現這個錯誤了,至此解決。
在這裏記錄一下,下次出現類似的情況,保證自己不會忘。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章