无论是用Eclipse还是用Android Studio做android开发,都会接触到jar包,全称应该是:Java Archive,即java归档文件。
在用AS的过程中,你会发现有aar这么个东西,经查阅资料了解到,aar是android归档文件,我想全称应该是:Android Archive。
他们两个有什么区别呢?
如果AS项目中没有Module,需要先自己新建一个Module。
依次选择File–New–New Module
选择选择Android Library,点击“Next”。
修改Application/library name为工程名称,Module name需要自己定义,这里暂时用mylibrary,包名可以点击“Edit”进行修改。
设置完成后,点击“Finish”。这样一个module就新建完毕了。
在新建的module的包内新建一个类文件写入你想要做的操作。
接下来就可以生成aar包了
Rebuild Project完之后在module内的“build”—“output”—“aar”中找到我们要的aar包
aar包就生成了,生成的是debug版本的aar,如果要生成release版本的,见方法2。
方法2:
选择AS右侧“Gradle”—选择需要生成aar的Module—“build”—“assembleRelease”,等待编译完成后,在Module相应的目录中找到aar。
将生成的包拷贝到Android工程下的app/libs下
配置build.gradle文件
repositories {
flatDir {
dirs'libs'
dependencies {
implementation fileTree (include: ['*.jar', '*.aar'], dir: 'libs')
testImplementation 'junit:junit:4.12'
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation (name:'mylibrary-debug',ext:'aar')
然后同步一下gradle。
到这一步其实我们的aar包已经在工程的扩展包里了。
现在在Android项目中使用aar包中的print()方法。
运行之后没有报错,添加完毕!
Android Gradle 打包每个库工程都会导出一个 AAR 文件。之前有尝试使用第三方插件 fat-aar 来合并打包,但打包时经常报错,合并时间也略长。此外此次导出的 SDK 需要做代码混淆,如果对每一个库都进行混淆文件非常麻烦,不便于统一管理,也不便于统一暴露接口。工程库之间的引用逻辑比较多,也增加了导包的配置成本,此外还要支持 AIDL 合并。
GitHub源码地址:https://github.com/RuiRay/MergeModuleAAR
这里选择将多个工程库合并到一个工程库后再打包的方
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
1 点击【File>New>New Module】
2 选择 【Import .JAR/.AAR Package,点击【Next】
3 输入.arr文件所在路径并点击【finish】.
4 点击【File>Project Settings 】(或者使用快捷键[Ctrl+Shift+Alt+S](适用于Windows)).
5 在左侧菜单【Modules】栏目下,选择需要依赖.a
aar包是Androidstudio下打包android工程中src、res、lib后生成的aar文件,aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件
2、生成aar包步骤
2.1、用android studio打开一个工程,然后新建一个Module,新建Module时候选择Android Library,后面按新建普通工程操作
在Android Studio 项目里面引入xxx.aar包,主要有以下几个步骤:
将目标aar文件,例如lyx-library-1.0.3.aar文件,复制粘贴在工程的app/lib/目录下。
在app目录下的build.gradle文件中添加以下代码:
今天对接一个海康监控的sdk,其中sdk 是以aar的形式提供的,并且我需要用到此aar的模块是个library。所以按照正常的在application模块中引入aar的方式一致报错,首先提示要关闭offline ,然后关闭了还是会提示错误。想了很久不明白。最终通过公司前辈的指导,正确的引入了aar。
1.除了和正常的aar的引入方式外,我们还需要在application所在模块的build.gr