eclipse library jar包 使用總結 MD

Markdown版本筆記 個人GitHub首頁 個人博客 個人微信 個人郵箱
MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com

目錄

引用庫錯誤解決辦法

若是在libraries中發現有小紅叉,代表引用庫錯誤android

解決辦法:
在左側projects中add引用到的庫
如:咱們的支付庫引用瞭如下三個庫
git

那麼須要在projects中add這三個庫
github

完成後clear一下,右側的libraries中就不會有錯誤了
微信

而後再在咱們的主工程中用一樣的方式引入支付庫。app

引入jar包

簡單點,也能夠直接把jar包拷貝到lib目錄下!
完整步驟:
一、將jar包放入工程的libs目錄下eclipse

二、右鍵--> Properties--> Jav Build Path--> 選右側的libraries--> 將libs目錄下jar導入ide

三、選中Order and Export,勾選*.jar,肯定便可工具

實際經驗:對於某些jar包,好比v四、v7包,咱們直接把此包放到工做空間目錄中,並作一些設置,項目就能直接引用到(描述的不清楚,但實際就是這麼回事)。

必定不要忘了,還要在右邊的Order and Explrt中勾選剛導入的jar包ui

完成後,會發現多出如下東西:
spa

引用庫

一、將一個android工程做爲庫工程
首先它也是普通的android工程,右鍵--> Properties--> Android--> 選中」Is Library「--> 點擊Apply,點擊OK,這個android工程就成爲了library工程。
這時查看project.properties文件,會發現多瞭如下一行:

注意:在library工程中不能使用aidl文件,不能引用raw、assets下資源,不能右鍵運行。

二、工程中引用庫工程
右鍵--> Properties--> Android--> 點擊右側下方的Add按鈕,在打開的對話框中選擇須要的庫工程--> OK,Apply,OK便可

三、在主工程清單文件中聲明庫工程中的組件
主工程的清單文件中必須聲明所引用的庫工程中的四大組件 以及 ,及其餘相似的元素,而且必須經過它們的包全名來聲明引用的庫組件。

相關問題處理

一、平白無故沒法引入庫的解決方式
先右鍵--> Android--> remove錯誤引用的庫--> 點擊ok;再右鍵--> Android--> 從新add此庫--> 點擊ok
也就是,取消引入後要先點擊確認後才能再添加,若remove後當即add則無效!

二、庫被重複引用致使的問題(補充:緣由多是由於此被引用的庫版本不一致!)
若主工程和庫工程都引用了一樣的其餘庫或jar包時,會致使重複引用的異常。

好比,我按以上步驟建立了兩個工程,沒作其餘改變前,相關的設置爲:
主工程

庫工程

這時運行的話,異常提示信息以下:

[2015-09-08 15:53:10 - Dex Loader] Unable to execute dex: Multiple dex files define Landroid/support/v7/appcompat/R$anim;

[2015-09-08 15:53:10 - Lib1] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v7/appcompat/R$anim;

解決方式:

  • 刪除主工程裏庫工程已經引用的jar包或其餘庫工程,而且clear一下全部涉及到的工程。
  • 可是,奇怪的是,若主工程引用了兩個庫工程,這兩個庫工程若引用了V7庫時運行並無問題
  • 更奇怪的是,此時再在主工程中添加一樣的V7庫後也能正常運行,臥槽!!!

三、庫項目使用過程當中須要注意的事項
在使用庫項目的時候,由於Android項目結構及編譯工具的特殊性,咱們須要注意一些要點,列舉以下:

  • 若是工做項目和庫項目的資源名稱重複,編譯器會優先使用工做項目的資源,若多個庫項目中的資源名稱重複,則根據在列表中的排序由上到下優先級依次下降;
  • 工做項目被編譯時,會合並工做項目和庫項目的R文件,若是R文件中有常量同名,一樣,也會按以上優先級處理;
  • 沒法將一個庫項目導出爲一個jar文件;
  • 工做項目的Android系統版本必須大於等於庫項目的系統版本;

另外說一下資源衝突問題的注意點:
咱們知道本項目的優先級最高,但要注意一點的是string裏面的國際化問題。
通常集成的項目都很完善,國際化分辨率什麼的都支持,天然本身的項目就支持了這些功能,這樣就會出現,你在string裏面定義了一個key跟庫裏面的key同樣,但結果值倒是以庫的爲準的現象,爲何?由於手機去找value-zn(通常手機默認是語言是中文)的資源了,因爲你原本項目裏面沒有國際化,因此天然去庫裏面找資源了,最容易出現的問題就是app_name老是項目庫的名字。

四、庫項目使用的場景
庫項目確實爲重複代碼代碼帶來了很大的好處。可是並非什麼狀況下都是適用的,就像前面提到的適合作一些特定邏輯上的處理,好比新浪微博咱們開發新浪的一些功能可使用新浪微咱們提供的lib項目,它裏面主要封裝了一些接口的操做。咱們只須要調用就能夠了,這種場景庫項目來對指定的接口完成指定的事情。若是使用同一個lib項目時接口有很大的改變就不適合使用lib,由於在lib項目中封裝的邏輯處理是不能改變的包括接口的調用。和異常的一些處理。咱們必須以前作好足夠的設計。在對各類android的控件定義格式的儘可能使用style來完成,來方便不一樣子項目來調用同一個庫項目修改控件屬性的修改性。

eclipse 導入或新建項目時報錯

最簡單的解決方案

若是隻是某一個工程(特別是導入的他人的工程)出問題,解決辦法就是增長所缺的jar包。
步驟以下:

  • 一、在Eclipse中,右擊當前工程,選擇Properties
  • 二、選擇Java Build Path
  • 三、選擇Libraries tab,點擊右邊面板的Add External JARs按鈕
  • 四、選擇android-support-v4.jar文件,在你的andriod的sdk目錄下: \android-sdks\extras\android\support\v4\android-support-v4.jar

快速解決方法:

  • 一、更改
  • 二、工程右鍵--> properties--> android--> remove掉下面引用的v7庫
  • 三、刪掉style中報錯的引用的style(或者能夠直接刪掉此文件),刪掉menu中報錯的引用的屬性(或者能夠直接刪掉此文件),刪掉掉清單文件中報錯的引用的主題theme,代碼中將繼承自ActionBarActivity改成繼承Activity,從新導包。

2016-03-21

相關文章
相關標籤/搜索