關於AndroidStudio如何導入新項目LibraryProject以及遇到的一些問題

在項目根目錄下建立一個libraries文件夾,移動你要使用的library project到libraries目錄(複製到工程的話,複製過來的庫工程裏面的src目錄下的代碼會丟失)

注意:你的library project一定要保證有自己的build.gradle,如果沒有,應該用Eclipse導出該工程

 

在Eclipse中選擇要導出的項目,然後依次選擇菜單 file->export->Android->Generate Gradle build files. 之後依次點擊next到finish即可
關於Android Studio如何導入library project - ebirdfighter - ebirdfighter的博客
回到Android studio

打開settings.gradle,添加include ':libraries:你的庫工程名稱'
關於Android Studio如何導入library project - ebirdfighter - ebirdfighter的博客
ctrl+alt+shift+s 打開 project structure 在左側面板選中module,在中間面板選中module名,再在右邊面板選中denpendecies
在面板的最右邊出現一個加號,點擊+號,選擇第三項module denpendecy
關於Android Studio如何導入library project - ebirdfighter - ebirdfighter的博客
此時彈出一個對話框,顯示你的library project ,選中它,點擊OK,最後在 project structure面板依次點擊Apply,OK
關於Android Studio如何導入library project - ebirdfighter - ebirdfighter的博客 完成以上步驟,有可能會遇到如下問題:
1 報錯:類似於: 關於Android Studio如何導入library project - ebirdfighter - ebirdfighter的博客 那是因爲你的library project的build.gradle裏的配置的SDK版本與你現有工程的build.gradle所配置的SDK版本不一致,修改library project的build.gradle裏的SDK版本,使它與現有工程一致就可以解決 例如library project的build.gradle 關於Android Studio如何導入library project - ebirdfighter - ebirdfighter的博客 原有工程的build.gradle
關於Android Studio如何導入library project - ebirdfighter - ebirdfighter的博客 把library project的build.gradle對應的字段值參照原有工程來修改,修改完畢後,rebuild一下工程 2 在rebuild工程後仍報錯
關於Android Studio如何導入library project - ebirdfighter - ebirdfighter的博客 此時依次打開File--Invalidate Caches/Restart,彈出對話框
關於Android Studio如何導入library project - ebirdfighter - ebirdfighter的博客 點擊第一項Invalidate and Restart,待Android studio重啓即可解決問題,然後你就可以用上你的library project了
上面是一種可能,今天我在導入XListView第三方類庫的時候踩了兩個坑,折騰了我一上午了,嗚嗚。 第一個:

The method initializeScrollbars(TypedArray) is undefined for the type PLA_AbsListView

 

這個錯誤,很多人認爲是 API版本太低,initializeScrollbars這個函數沒有辦法用,

 

真正的解決方法是採用:反射的機制來搞定,因爲,我們知道方法名,方法的參數,所以就可以這樣做,

 

final TypedArray a = context.getTheme().obtainStyledAttributes(new int[0]);
try {
// initializeScrollbars(TypedArray)
Method initializeScrollbars = android.view.View.class.getDeclaredMethod("initializeScrollbars", TypedArray.class);
initializeScrollbars.invoke(this, a);
} catch (Exception e) {
e.printStackTrace();
}

 

這種方法是最有效果的,

 

一般這種錯誤是出現在自定義的view中的構造函數裏面。


第二個:
F:WORKSPACESTUDIO_20150715MmAlbum2appsrcmainAndroidManifest.xml:19:9-43 Error: Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest.xml:19:9-43 is also present at [com.github.2359media:EasyAndroidAnimations:0.8] AndroidManifest.xml:13:9-45 value=(@drawable/ic_launcher) Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:17:5-58:19 to overrideError:Execution failed for task ':android:processDebugManifest'.> Manifest merger failed : Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest.xml:19:9-43 is also present at [com.github.2359media:EasyAndroidAnimations:0.8] AndroidManifest.xml:13:9-45 value=(@drawable/ic_launcher) Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:17:5-58:19 to override

1.解決方法:

參考

具體:
1.在Manifest標籤下添加 tag:xmlns:tools=”http://schemas.android.com/tools”

2.在Application標籤下添加tag:
tools:replace=”android:icon”

不出意外就能解決啦。

注:  本文由  微信媽媽(公衆號買賣ontaobao.cn) 編輯整理,     轉載於  http://www.it165.net/pro/html/201604/65697.html                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

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