首先说下jar包和arr包的区别,打jar包里只能将库里的源码打进去,而资源什么的不能打进去(例如UI库),所以在使用jar包的时候,如果要使用jar包里的资源就要使用反射来实现不然就会有问题!而打arr包的时候AS会自动的将资源文件和源码一起打进去这样在使用的时候就不用担心资源缺失的问题了!
首先在library的工程目录下选中它的build.gradle文件并打开
在文件的最后加入代码
//task to delete the old jar
task deleteOldJar(type: Delete) {
delete 'release/AndroidPlugin.jar'
}
//task to export contents as jar
task exportJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('release/')
include('classes.jar')
///Rename the jar
rename('classes.jar', 'AndroidPlugin.jar')
}
exportJar.dependsOn(deleteOldJar, build)
实现一个生成jar包的方法
其中AndroidPlugin.jar就是生成的jar包名
实现上面操作之后 点击右边的Gradle侧边栏
点击之后选择 library包下面的Tasks->other->exportJar方法 然后运行它
运行完毕后 你就可以在library项目文件下面的release文件夹里面找到生成的jar文件了
jar的使用方法很简单
可以直接在项目app文件夹下的build.gradle内直接输入代码 或者选择按钮添加
1.按钮添加
这个导入按钮在运行旁边
进入后选择主项目在选择第四栏 选择+号进行添加
2.代码添加
选择app下的文件
打开在dependencies内输入代码
compile files('libs/mytool_1.0.jar')
然后点击sync Now 等待完成就可以了。
再次是aar文件的生成
其实aar文件每次项目运行都会直接自己生成
文件路径如下
没有生成clean下项目或者rebuild的即可
步骤生成是
1.选择边上的Gradle
2.选择library目录下的 Tasks->build->assembleRelease方法
3.等待运行完毕后去 buile->outputs->aar的文件夹下拷贝出来即可
aar包的使用
是在主项目app文件夹下的build.gradle 添加一个方法和在dependencies内输入代码
1.添加方法 代码
repositories {
flatDir {
dirs 'libs'
}
}
2.在dependencies内添加代码
compile(name: 'toollibrary-1.0', ext: 'aar')
格式就是 名字 aar文件类型
操作图如下
项目上传到github,生成依赖
在Android项目中经常需要依赖使用别人开发的第三方依赖库,使开发更加方便。比如我下面用到的几个依赖库:
那么这些依赖库是怎么制作的呢,在这篇文章中介绍其中一种比较常见的方法。
首先,需要制作一个自己的依赖库,即新建一个空白项目,选址new module或者import module,这个相信大部分人都懂。接下来,打开Android studio 的setting搜索git,填写自己的github账号密码,测试连接,如下图。
然后点击share project on github分享项目到github。
填写库的名字和描述,点击share
选址要上传的目录,点击OK开始push上传项目到github,等待一段时间上传完成。
这样,第一步就完成了。接下来需要登录到github网站上,发布自己的项目。如下图,点击release,创建一个release。
填写好版本号描述,点击发布项目。
这样子项目就发布完成,接下来需要登录到JitPack.io网站,输入项目地址,点击get it。
到此,项目就算已经发布完成,并且可以依赖使用了。
下拉就可以看到使用方法了,接下来就可以按照他的使用方法在我们的项目上使用这个依赖了。
在根目录的build.gradle添加这一句代码。
在app目录下的build.gradle添加依赖使用。
然后同步一下代码,就大功告成了!
然后可能会出现离线的问题,这个时候只需要设置一下非离线状态,把offline work给去掉,再同步一次就可以了。
文章转载来自:
原文:https://blog.csdn.net/g777520/article/details/53331797
https://blog.csdn.net/github_36962753/article/details/59052971
https://blog.csdn.net/hwj3747/article/details/53635571