Markdown版本筆記 | 個人GitHub首頁 | 個人博客 | 個人微信 | 個人郵箱 |
---|---|---|---|---|
MyAndroidBlogs | baiqiantao | baiqiantao | bqt20094 | baiqiantao@sina.com |
若是在libraries中發現有小紅叉,代表引用庫錯誤android
解決辦法:
在左側projects中add引用到的庫
如:咱們的支付庫引用瞭如下三個庫
git
那麼須要在projects中add這三個庫
github
完成後clear一下,右側的libraries中就不會有錯誤了
微信
而後再在咱們的主工程中用一樣的方式引入支付庫。app
簡單點,也能夠直接把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;
解決方式:
三、庫項目使用過程當中須要注意的事項
在使用庫項目的時候,由於Android項目結構及編譯工具的特殊性,咱們須要注意一些要點,列舉以下:
另外說一下資源衝突問題的注意點:
咱們知道本項目的優先級最高,但要注意一點的是string裏面的國際化問題。
通常集成的項目都很完善,國際化分辨率什麼的都支持,天然本身的項目就支持了這些功能,這樣就會出現,你在string裏面定義了一個key跟庫裏面的key同樣,但結果值倒是以庫的爲準的現象,爲何?由於手機去找value-zn(通常手機默認是語言是中文)的資源了,因爲你原本項目裏面沒有國際化,因此天然去庫裏面找資源了,最容易出現的問題就是app_name老是項目庫的名字。
四、庫項目使用的場景
庫項目確實爲重複代碼代碼帶來了很大的好處。可是並非什麼狀況下都是適用的,就像前面提到的適合作一些特定邏輯上的處理,好比新浪微博咱們開發新浪的一些功能可使用新浪微咱們提供的lib項目,它裏面主要封裝了一些接口的操做。咱們只須要調用就能夠了,這種場景庫項目來對指定的接口完成指定的事情。若是使用同一個lib項目時接口有很大的改變就不適合使用lib,由於在lib項目中封裝的邏輯處理是不能改變的包括接口的調用。和異常的一些處理。咱們必須以前作好足夠的設計。在對各類android的控件定義格式的儘可能使用style來完成,來方便不一樣子項目來調用同一個庫項目修改控件屬性的修改性。
最簡單的解決方案
若是隻是某一個工程(特別是導入的他人的工程)出問題,解決辦法就是增長所缺的jar包。
步驟以下:
快速解決方法:
2016-03-21