Android Studio常见aar引用方式大全(总有一种适合你)
因项目需要,引用第三方aar,踩了几个坑,也就有了该文,顺便整理了下常见aar的几种引用方式,详细如下。方式一项目工程目录结构如下图,是使用Android Studio 3.0新建的library工程:针对该目录结构的项目,引用libs下的aar方法如下:在该lib工程的build.gradle文件中,新增如下代码:sourceSets{main{...
·
因项目需要,引用第三方aar,踩了几个坑,也就有了该文,顺便整理了下常见aar的几种引用方式,详细如下。
方式一
项目工程目录结构如下图,是使用Android Studio 3.0新建的library工程:
针对该目录结构的项目,引用libs下的aar方法如下:
- 在该
lib工程的build.gradle文件中,新增如下代码:
sourceSets{
main{
jniLibs.srcDir(['libs'])
}
}
repositories {
flatDir {
dirs 'libs'
}
}
- 直接引用
aar即可
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
api(name: 'ocr-fullCards-online-release', ext: 'aar')
}
完整build.gradle代码如下:
apply plugin: 'com.android.library'
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
manifestPlaceholders rootProject.ext.manifestPlaceholders
}
sourceSets{
main{
jniLibs.srcDir(['libs'])
}
}
repositories {
flatDir {
dirs 'libs'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
api(name: 'ocr-fullCards-online-release', ext: 'aar')
}
方式二
在项目根目录下新建repositories文件夹,将aar文件拷贝到此,项目目录结构为:
- 在项目根目录
build.gradle中,添加repositories引用,如下:
allprojects {
repositories {
jcenter()
google()
flatDir {
dirs '../repositories'
}
}
}
- 在相应
library或app工程中引用即可
dependencies {
api(name: 'ocr-fullCards-online-release', ext: 'aar')
}
方式三
在传统Eclipse建立的项目结构中,引用aar,项目结构如下:
修改当前core库的build.gradle文件:
android {
...
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
res.srcDirs = ['res']
assets.srcDirs = ['assets']
java.srcDirs = ['src', 'src-gen', 'test']
jniLibs.srcDirs = ['libs']
aidl.srcDirs = ['aidl']
}
}
...
}
dependencies {
api fileTree(include: ['*.jar'], dir: 'libs')
api(name: 'moxie-client-1.3.5', ext: 'aar')
}
repositories {
flatDir {
dirs 'libs'
}
}
参照如上修改后,重新编译即可,引用成功。
方式四
将aar上传到maven仓库或远程服务器,然后在项目根目录下的build.gradle文件中,配置好maven地址,直接在相应的工程中引用即可。
build.gradle示例
// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply from: "config.gradle"
buildscript {
repositories {
maven { url "http://******/nexus/content/groups/public/" }
maven { url "https://*****/maven" }
maven { url "https://jitpack.io" }
mavenLocal()
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.21"
classpath "com.tencent.tinker:tinker-patch-gradle-plugin:${TINKER_VERSION}"
}
}
allprojects {
repositories {
maven { url "http://******/nexus/content/groups/public/" }
maven { url "https://*****/maven" }
maven { url "https://jitpack.io" }
mavenLocal()
google()
jcenter()
}
}
- 在工程中的
build.gradle中直接引用即可,示例如下
dependencies {
api fileTree(include: ['*.jar'], dir: 'libs')
api 'com.umeng.sdk:common:1.5.3'
api 'com.umeng.sdk:analytics:7.5.3'
}
好了,以上介绍了开发中常见的四种aar引用方式,如果有问题或有更好的方案,欢迎留言哈~
更多推荐



所有评论(0)