Android开发过程中,有时需要将我们的某些功能打成jar包给其他人使用,这样的文章也不在少数,下面我将我在打包的过程中遇到的问题以及打包流程说一下,供需要的各位参考:
Android studio(以下简称as)的菜单栏下依次打开File->New->New Module:
图1.
接下来在弹出的窗口中选择"Android Library"选项,注意:不要选择"Java Library",试过了,貌似不行的。
图2.
选择完“Android Library”以后进入下一步后输入你想要的类库的名字以后接着finish就行了。如下图,类库的名字前的文件夹都是几本书的样子,而可运行的APP的图标是一个手机。
图3.
在类库的/src/main/java目录下编写自己的代码,编写完后Make 一下类库模块其实就会生成默认名为classes.jar的jar包了,可以直接用了,默认在类库的\build\intermediates\bundles\debug目录下。
图4.
图5.
一般的,我们会给这个jar包自定义名字,方式之一就是拷贝出classes.jar文件手动更名,另一种方式就是在gradle中进行配置,以后再生成jar包的时候比较方便。下面说如何配置:
在类库的build.gradle文件最末尾的位置添加如下代码:
task makeJar(type: Copy) {
delete 'build/libs/demo.jar'
from('build/intermediates/bundles/default/')
into('build/libs/')
include('classes.jar')
rename('classes.jar', 'demo.jar')
}
makeJar.dependsOn(build)
然后通过下图解释一下每行的作用。
图6.
配置好以后就可以编译jar包了,有两种方式:
①点击as右侧(一般在这个位置)的Gradle面板(这个面板中都是Gradle的工具,很好),在项目或者该类库的目录中找到Tasks->other->makeJar命令,双击这个makeJar之后等一会就会编译好你想要的jar包了.
图7.
②通过命令行,在项目根目录下,执行gradlew makeJar命令,看到编译完成的信息以后就OK了,也能生成一样的jar包,和直接使用①中的方式是等价的。但是之前要配置好gradle的环境变量,否则直接在项目根目录下找不到这个命令。配置环境变量的方式请看:http://blog.csdn.net/builder_taoge/article/details/70172170
图8.
图9.成功打包。
note:
<1>对于图6中配置代码部分,有的文章中写的路径是from('build/intermediates/bundles/
release/'),注意粗体部分,最初我也是按照这个目录写的,确实没问题。但后来,也就是as更新到2.3以后,发现这个目录没有了,取而代之的是
default和debug目录,debug目录之前也是有的,没有变化,只是原来的release目录被现在的default目录代替了。这导致我后来生成jar包的时候始终没有找到jar包,我以为是生成的jar包的存放路径改变了,但是一直没找到。后来发现,
原因就是没有了release目录,找不到默认的classes.jar文件,所以也就没有生成自定义名字的jar包,改为default或者debug目录以后就能正常生成jar包了,要注意这点变化。
<2>如果用命令行的方式生成jar包,有的文章中写的命令是
gradview makeJar,我试过,没有该命令,可能是文章编辑的时候作者误写错,或者不知道是不是我哪里没用对,留待后来人验证。但是gradlew makeJar命令是可以的。
转载请注明原文地址: https://ju.6miu.com/read-673785.html