android使用mina需要注意的問題

1.第三方jar包的使用 
      如果在Java Build Path中使用Add External JARs這種方式,運行時會有找不到類的錯誤(我的上面有,如果你沒出現,恭喜你),上網查了幾種方式,我這邊運行通過的方式如下: 
     在項目中建個lib文件夾,把需要的jar包複製進去,在   Java Build Path中使用  Add JARs ,選擇項目下的lib包中的jar文件即可,發佈apk文件時會自動打包進去。 
     網上還有一種方式,在  Java Build Path 中使用 Add Library, 選擇 User Libaray -> 新建一個User Libaray的方式,這種我沒試,有通過的同志們說下。 
    本人推薦項目建文件夾的方式。 

2.  mina包的使用之日誌 
     我使用的是mina2.0.2,如果沒有特殊需求,使用mina-core-2.0.2核心包就可以了。 
     關鍵點在這裏: 
     mina中使用slf4j作爲日誌框架(不知道slf4j的同志們請google下), 這個只是一個日誌框架,是沒有實現的,你需要一個具體的實現,比如說log4j(具體使用方法我就不說了,很簡單,實在不知道給我發站內信)。使用 mina必須把slf4j的jar包也引入,那麼你也要引入一個實現日誌的包,在普通客戶端開發這個不是問題,但在android中,已經有了一個日誌實 現,而且配合logcat,其功能是很強大的,那麼怎麼配合slf4j來使用呢?(ps:slf4j是必須的,mina要用到) 
   這裏就要感謝網絡了,我在slf4j的官網居然發現有一個slf4j-android的jar包 
http://www.slf4j.org/android/  同志們可以去看看,(強烈推薦去看看)下載這個包,引入到項目中,注意啊,這個包是不能和slf4j-api包共存的,我的解決方式是隻使用slf4j- android這個包,其餘的日誌相關的包都刪除,(其實別的日誌包也沒什麼用,我們有android提供的日誌類),這樣mina就不會報日誌類找不到 的錯誤了,而且日誌都輸出到logcat,調試程序也方便。這方面我們要感謝slf4j,如果沒有這個實現,mina使用就麻煩了,我能想到的方式就只有 更改mina源代碼,重新編譯了,當然你也可以自己提供日誌實現類。 
    android的日誌類中有一個限制,tag不能超過23個字符(你不知道tag,我也不知道該怎麼說了...),slf4j也給解決了,官網上面有介紹。(再建議看下官網) 

3.  mina包的使用之NioSocketConnector 

     在android2.1中好像沒有問題,但在android2.2中會有Bad address family的異常,這個異常是由於IPv6引起的,這個bug已經在 http://code.google.com/p/android/issues/detail?id=9431  (同志們看看吧),android2.2不支持IPV6,在使用nio 時會有問題,有建議是使用io,可以解決,但我們如果一定要使用nio呢,解決方法如下: 

設置系統屬性: System.setProperty("java.net.preferIPv6Addresses", "false"); 就這一行解決問題,有同志可能要問,在哪加啊?系統開始的地方加,比如說是service,在onCreate()中啓動mina前加上就 行,activity中也一樣。

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