Android Studio编译的时候会自动将项目生成jar和aar的,我一开始觉得jar须要本身单独生成,其实AS已经自动生成了,网上找的不少资料都是一个复制的过程而已。html
只不过在AS3.1之前是放到build/intermediates/bundles文件夹里面。android
然而如今换成了build\intermediates/packaged-calsses文件夹里面了,之后也不知道会放哪儿了,这是一坑。windows
若是直接从已经完成的项目出发,能够直接修改build.gradle第一行,改为apply plugin:'com.android.library';app
可是这么一修改,可能会出现不少错误,什么参数错误,什么资源文件有问题等。gradle
保险起见,从“0”开始。ui
新建一个module,注意选择Android Library类型。spa
把一些须要打包的文件通通写到这个library里面,若是有什么错误的话,就一个一个去解决吧。命令行
将module完善以后,就开始打包了。debug
在文末添加以下代码:3d
//修改jar名字+将指定jar生成的地方 task makeJar(type:Copy){ //若是以前存在,则先删除 delete 'build/libs/test.jar' //设置拷贝的文件 from('build/intermediates/packaged-classes/debug/') //生成jar包后的文件目录位置 into('build/libs/') //include,exclude参数来设置过滤 include('classes.jar') //重命名 rename('classes.jar','test.jar') } makeJar.dependsOn(build)
在AS最下方的Terminal中输入命令便可。
若是是MAC电脑:./gradlew makeJar
若是是Windows电脑: gradlew makeJar
若是报错,通常都是没有配置gradle环境,谷歌一下解决方案呗。
幸运的话,能够在build/libs文件夹下看到生成的jar文件了。
在Build Success后,在module的build/outputs/aar文件夹下会有一个aar文件。
在module的build/libs或本身定义的其余位置下会有一个jar文件。
两者区别:
jar: 只包含了class文件与清单文件 ,不包含资源文件,如图片等全部res中的文件。
aar: 包含jar包和资源文件,如图片等全部res中的文件。
aar编译完就自动生成了,因此不一样担忧资源问题。
很简单。
i.将aar文件拷贝至目标项目的app/libs文件夹下。
ii.在app下的build.gradle中添加以下代码:
分别是这两块:
repositories{ flatDir{ dirs 'libs' } }
implementation(name:'librarydemo-release',ext:'aar')
Sync Now一下,若是没有报错,应该就是成功引用了。
看一下依赖的外部类,已经有了刚才咱们引用的library了。
这个网上搜一大把。方法也是相似的,更加简单。
先将jar拷贝至目标项目的app/libs文件夹下。
mac电脑操做以下:右键->add as library->选择当前mudule->OK.
windows电脑相似的。
稍微有点麻烦。
首先将jar包中用到的资源文件放到本身的项目中。
而后在本身的项目中利用反射获取。参考文章点我。