android使用mina需要注意的問題

來源:互聯網
上載者:User

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包的使用之NioSocketConnectortp-link

     在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中也一樣。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.