用Android studio2.3打jar包失败,没有生成相应的jar包。

    xiaoxiao2021-04-17  46

    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

    最新回复(0)