[英]Android Library Project using Android Studio
這個問題可能在某處得到了回答,但找不到合適的。
我想知道如何在 Android Studio 中創建通用實用程序庫項目。 我想在其中編寫一些常用類和一些常用方法,以便在 Android 應用程序項目中使用。 可能就像 Windows 世界中的 .dll 一樣 - 一組可以在多個使用者之間共享的通用方法。
提前致謝。
最簡單的方法:
在 Android Studio 中右鍵單擊您打開的項目,然后選擇New > Module
在左側窗格中選擇 Android 庫,然后單擊下一步。
輸入所有詳細信息,如果不需要,取消勾選創建活動、主題和所有內容。
選擇與您的項目相同的 API 級別,然后選擇 Next、Next、Next。
現在您將在項目中看到另一個目錄,庫的build.gradle
將自動為您配置。
如果您的模塊/庫名稱是"mylibrary" ,
include ':mylibrary'
將自動添加到項目根目錄下的settings.gradle文件中。
現在打開你的主模塊並在依賴塊中插入這一行:
compile project(':mylibrary')
如果您想在其他項目中使用相同的庫,則必須使用 File Explore 將庫模塊復制到該特定項目,並且必須手動配置settings.gradle和主模塊的build.gradle 。
一個老問題,但即使是現在,AndroidStudio 中的庫似乎也沒有合適的解決方案。 一段時間以來,我一直在考慮進行遷移步驟,這就是我發現的。
假設我們有一個包含共享代碼的庫(稱為 lib)和一個想要使用所述庫代碼的應用程序項目(稱為 app)。
關鍵是在項目根目錄( /Some/Path/MyProjects/Project/settings.gradle
)的settings.gradle
中定義一個項目,該文件應該已經存在並且包含類似include ':app'
。
我們將修改此文件以包含庫並使用以下兩行定義庫:
/Some/Path/MyProjects/Project/settings.gradle
...
// tell gradle we want to include a module called 'lib'
include 'lib'
// tell gradle there is a module called 'lib', found in a specific directory
// Note the /app on the end, the project structure wraps a project around a module, you want to refer that module!
project (':lib').projectDir = new File('/Some/Path/MyProjects/Library/app')
...
同時編輯項目 build.gradle /Some/Path/MyProjects/Project/app/build.gradle
以依賴於新添加的模塊lib
/Some/Path/MyProjects/Project/app/build.gradle`
...
dependencies {
...
compile project (':lib') // we want to depend on our library
}
...
當與多個開發人員一起工作或為了靈活性,我在我的.gradle
目錄中使用我的gradle.properties
(對於通常在 homedir 中找到的基於 *nix 的系統,不確定 Windows 在哪里查找它)。 做筆記,您可能需要創建目錄和文件了。
在這個文件中,如果你願意,你可以創建你可以在整個 gradle 文件中使用的常量。 例如,我的包含如下內容:
theconstant=/Some/Path/MyProjects/Library/app
注意看似丟失的引號(不確定是否真的需要)現在我們可以替換
project (':lib').projectDir = new File('/Some/Path/MyProjects/Library/app')
和
project (':lib').projectDir = new File(theconstant)
現在您和您的團隊可以定義這個常量(每台機器可能不同)並相應地更改路徑。
BuildConfig.DEBUG
!)我還沒有找到機會正確地測試它,但這似乎是目前最優雅的解決方案! 我想聽聽您對此的看法。
我只是在做:
include '..:commons'
在 settings.gradle 中
和:
compile project(':..:commons')
在引用項目的 build.gradle 中
這樣您就可以將常用的庫放在項目之外
你的 build.gradle 應該是這樣的
apply plugin: 'android-library'
repositories {
mavenCentral()
}
dependencies {
compile 'com.android.support:support-v4:18.0.0'
}
android {
compileSdkVersion 18
buildToolsVersion '18.1.1'
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
看第一行
在 Android Studio 中創建新項目時,選項之一是“標記為庫”。
或者,只需像其他項目一樣創建項目。 然后在其他地方使用它時,在庫的 gradle 文件中確保將apply-plugin "android"
更改為apply-plugin "android-library"
並將其添加為正在使用它的應用程序的依賴項。 有關如何將創建的項目添加為庫的更多信息,請參見此處。
只需將其創建為普通項目,如果您想將其用作應用程序中的庫打開project structure
,並在Dependencies
下添加所需的庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.