Android Library 庫(kù)如何添加本地 aar 依賴 (How to add .aar dependency in library module?)
本文提供4中方法供您選擇 :
方式一: 個(gè)人推薦 (依賴集中配置旁仿,aar 各自library_module管理):
Follow this setting and you will able to add .aar dependency to library module
#############################################################################################
###### build.gradle (Project: ….)
allprojects {
repositories {
jcenter()
mavenCentral()
flatDir {
dirs 'libs'
dirs project(':library_module').file('libs')
}
}
}
#############################################################################################
###### build.gradle (Module: app)
dependencies {
...
compile project(':library_module')
}
#############################################################################################
###### build.gradle (Module: library_module)
//Notice : 沒(méi)在割按,上面 android 大括號(hào)中
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
...
compile(name:'aar_file_name', ext:'aar') // aar存放 library_module/libs目錄中
}
################################################################################################
###### settings.gradle (Project Settings)
include ':app', ':library_module'
方式二:app build.gradle
#############################################################################################
###### build.gradle (Module: app)
repositories {
flatDir {
dirs 'libs', '../library_module/libs' // 路徑方式
// dirs project(':library_module').file('libs')//添加aar所在的libs路徑到本地倉(cāng)庫(kù)
// 兩種方法都可以
}
}
#############################################################################################
###### library_module 本地 aar 放置在 library_module/libs 下,自己管理
3豌习、 和第二種方式相似( aar 文件放置在 app下 libs目錄 )
#############################################################################################
###### build.gradle (Module: library_module)
repositories {
flatDir {
dirs 'libs', '../app/libs' // 路徑方式
}
}
4、將library中l(wèi)ibs下的aar文件拷貝一份到 app/libs 文件夾中精肃,并在 app/build.gradle 中添加library_module依賴 (不推薦,需要多個(gè)地方維護(hù) aar 文件 )
repositories{
flatDir {
dirs 'libs'
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation project(':library_module')//library_module為你的library名稱
}
Examples:app build.gradle(注意下面Notice相關(guān)) :
plugins {
id 'com.android.library'
}
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
//Notice : 沒(méi)在,上面 android 大括號(hào)中
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
//Notice : 書寫方式
implementation(name:'library_module', ext:'aar')
//Notice : all jar will add dependency automatically
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0'
testImplementation 'junit:junit:4.+'
}