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了