(如版本2.1+):
下面是我走上共享項目目錄之外的庫源的步驟。我的代碼不是簡單的Java庫,而是編譯爲Android模塊,但該庫模塊不包含在主項目中。只要沒有代碼重複,我只需要爲所有項目維護一組庫代碼就可以了。
1)File-> new Project。給你的圖書館項目命名(這裏我使用LibraryProject
)。繼續剩下的步驟來創建一個正常的項目(因爲這是一個庫,我選擇了「添加沒有活動」)
2)默認情況下,Android studio在項目文件夾內創建名爲「app」的模塊。爲了防止名稱與實際應用程序模塊發生衝突,請將模塊重命名爲其他名稱(右鍵單擊左側面板中的「應用程序」模塊 - >重構 - >重命名)。
3)在build.gradle
你的庫模塊文件夾裏面,頂線
apply plugin: 'com.android.application'
改變
apply plugin: 'com.android.library'
,然後刪除在 「defaultConfig」 了 「的applicationID」 行。另外,由於這是一個庫,所以從Manifest.xml中刪除xlmns:...
名稱空間和<application ..>
正文。 這就是圖書館的一部分。現在,創建/修改您的主應用程序:
4)如果是新項目,請先創建新項目File-> new Project-> ApplicationName。
5)打開settings.gradle
(應該只有在每一個項目一個這樣的文件),幷包括以下行(注意庫模塊中丟失的前導分號):
include ':app', '..:LibraryProject:yourLibraryModule'
6)然後去文件 - >項目結構。
7)在「Dependencies」標籤下點擊右側綠色的「+」按鈕。選擇「模塊依賴」。選擇你的圖書館模塊,然後點擊確定。
您現在應該可以在應用程序中使用庫類。
其它方法 如果由於某種原因,仍存在上述方法的問題,你可以嘗試以下內容(here建議):
1)重複步驟1到4以上。默認情況下,主要和外部(庫)項目是這個樣子:
/MainProject
+ build.gradle
+ settings.gradle
+ app/
+ build.gradle
+ src/
/LibraryProject
+ build.gradle
+ settings.gradle
+ app/
+ build.gradle
+ src/
2)像往常一樣,重構模塊名稱(在Android Studio中右鍵單擊模塊 - > refactor->重命名)的東西少混亂如
/MainProject
+ build.gradle
+ settings.gradle
+ MainModule/
+ build.gradle
+ src/
/LibraryProject
+ build.gradle
+ settings.gradle
+ LibraryModule/
+ build.gradle
+ src/
3)修改settings.gradle
在MainProject
:
include ':LibraryModule', ':app'
project(':LibraryModule').projectDir = new File(settingsDir, '../LibraryProject/LibraryModule')
同步的項目,你就大功告成了。在Proguard的
說明目前你不應該使用外部庫項目/模塊的ProGuard。相反,你替換(在圖書館的build.gradle
)以下(原來的答案here)
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
debug {
minifyEnabled false
}
}
下列要求:
buildTypes {
release {
consumerProguardFiles 'proguard-project.txt'
}
}
其中proguard-project.txt
是包含您的庫項目ProGuard的規則文件。
您能否提供一個檔案,包含您的主要圖書館和項目的骨架?或者你可以解釋如何使庫項目目錄結構?當我創建一個圖書館項目時,AS創建了更深的結構。我試圖像創建目錄一樣創建目錄,但AS報告了有關分解目錄中錯誤「錯誤路徑名」的錯誤。我在過去的2個小時裏嘗試了很多變體,但沒有成功。 :( –
@ScottBarta。我在Android Studio 0.6.1上,即使按照Scott Barta和Neoh的小心指示,我仍然無法工作。我堅持使用「Error:Configuration with name'default '找不到',即使在根據Neoh的規範重新排列MyLibrary的文件結構(並在MyLibrary的build.gradle中將「MyLibary」指定爲「apply plugin:'android-library'」),最後我認爲這個問題最好由Android Studio開發人員(Scott Barta,你似乎是這樣的開發人員)繼續他們的好工作,以便它變成一個簡單的事情。 –
請參閱我的答案編輯 – Neoh