Android Studio常见aar引用方式大全(总有一种适合你)

因项目需要,引用第三方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'
        }
    }
}
  • 在相应libraryapp工程中引用即可
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引用方式,如果有问题或有更好的方案,欢迎留言哈~

猜你喜欢

转载自blog.csdn.net/u010358168/article/details/83541038
今日推荐