aar打包的注意事项
以前做SDK基本上都是使用jar包,jar包有个弊端,就是只能包含代码,不能包含资源文件,后来出现了aar,aar除了可以包含代码以外,res目录下的资源文件也可以包含进去,这样就方便了很多。
但是在aar打包的时候需要注意的是,把一个Library达成aar,lib文件夹下面的jar包是可以包含的,但是在build.gradle,文件中依赖的第三方库是无法打入aar的,如果不知道这点,很容易出现类找不到异常
使用AS打jar的配置
1:首先项目要是一个Library
2:在Library下的build.gradle目录下添加如下配置
def SDK_BASENAME = "TestSdk";
def SDK_VERSION = "_V2.0";
def sdkDestinationPath = "build/lib/"; //生成的jar的目录
def zipFile = file('build/intermediates/bundles/release/classes.jar') //本地代码生成的classes.jar
def zipJar_1 = file('libs/log4j-1.2.17.jar') //引入的第三方jar
task deleteBuild(type: Delete) {
delete sdkDestinationPath + SDK_BASENAME + SDK_VERSION + ".jar" //删除原来的jar
}
task makeJar(type: Jar) {
from zipTree(zipFile) //将classes.jar打入
from zipTree(zipJar_1) //将第三方jar打入
from fileTree(dir: 'src/main',includes: ['assets/**']) //将assets目录打入jar包
baseName = SDK_BASENAME + SDK_VERSION //生成的jar的名字
destinationDir = file(sdkDestinationPath)
}
makeJar.dependsOn(deleteBuild, build)
执行打包命令
打包有两种方法:
1:可以在右侧的对应工程的目录下的other目录下找打makejar命令,双击,如下图:


2:使用命令行,在对应工程下执行gradle makeJar,如下图:

最后执行成功

在对应的目录就能找到jar了
本文详细介绍了使用aar打包代替传统jar包的优势,特别是在资源文件的包含方面。文章强调了aar打包过程中的一些关键点,如lib文件夹下的jar包可以被包含,但build.gradle文件中依赖的第三方库不会被打入aar,这对于避免类找不到异常至关重要。此外,还提供了使用AS打jar的具体配置步骤和两种打包命令执行方式。
3108

被折叠的 条评论
为什么被折叠?



