簡體   English   中英

使用 Android Studio 的 Android 庫項目

[英]Android Library Project using Android Studio

這個問題可能在某處得到了回答,但找不到合適的。

我想知道如何在 Android Studio 中創建通用實用程序庫項目。 我想在其中編寫一些常用類和一些常用方法,以便在 Android 應用程序項目中使用。 可能就像 Windows 世界中的 .dll 一樣 - 一組可以在多個使用者之間共享的通用方法。

提前致謝。

最簡單的方法:

  1. 在 Android Studio 中右鍵單擊您打開的項目,然后選擇New > Module

  2. 在左側窗格中選擇 Android 庫,然后單擊下一步。

  3. 輸入所有詳細信息,如果不需要,取消勾選創建活動、主題和所有內容。

  4. 選擇與您的項目相同的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM