这两天公司要重构项目,以前的项目在eclipse上,准备迁移到Android studio上,需要对项目打包,于是我学习了Android studio中gradle打包的内容。我在公司用的Mac,在家用的Windows,两种平台下,打包基本一样的,这里主要说下在Mac系统下的过程。

在Andorid studio中的Terminal用的是Mac的终端,所以要使用Terminal的gradle命令打包,先要配置下mac中的gradle环境,打开mac上的终端:

(1) 输入命令:open .bash_profile

(2) 如果提示没有.base_profile文件,则要先创建.bash_profile文件。

创建.bash_profile文件:

输入:touch .bash_profile     命令后会帮你创建并打开.bash_profile文件

(3)在打开的.bash_profile文件中编辑,下面是我内容:

export GRADLE_HOME=/Users/wuqiyan/Downloads/Software/gradle-2.12;(下载gradle-2.12,解压后的目录)

export PATH=$PATH:$GRADLE_HOME/bin

保存后就可以了。

(4)再输入命令:open .bash_profile 就可以打开.bash_profile文件内容了。

(5)以上过程结束后,gradle环境配置好了。检查下,输入命令:gradle -version  看到下面的就等于配置好了。

           

------------------------------------------------------------

Gradle 2.12

------------------------------------------------------------

Build time:   2016-03-14 08:32:03 UTC

Build number: none

Revision:     b29fbb64ad6b068cb3f05f7e40dc670472129bc0

Groovy:       2.4.4

Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013

JVM:          1.8.0_77 (Oracle Corporation 25.77-b03)

OS:           Mac OS X 10.11.3 x86_64

 

以上就是Mac中的gradle的配置,这时候回到Android studio中,在Terminal中输入命令:gradle -version  也会看到上面的提示。

先来看下目录结构:

先建了一个项目后,打开app下的build.gradle文件:

(1)将 apple plugin:'com.android.application'改为apply plugin: 'com.android.library'

(2)删除:applicationId,versionCode,versionName

(3)加入:

task clearJar(type: Delete) {
//删除以前有的
delete 'build/libs/partJar.jar'
}
task makeJar(type: Copy) {
//从哪里打包class文件,可以指定文件和目录
from('build/intermediates/bundles/debug/')
//打包到jar后的目录结构
into('build/libs/')
include('classes.jar')
rename ('classes.jar', 'partJar.jar')
}
makeJar.dependsOn(clearJar, build) 
代码输入完之后,在andriod studio中Terminal中输入:./gradlew makeJar    (windows中输入:gradlew makeJar)
最后就可以在 build/libs/目录下找到partJar.jar。 如果要打Jar指定包名和类的话,可以参考下面的代码:
task clearJar(type: Delete) {
delete 'build/libs/partJar.jar'
}
task makeJar(type:org.gradle.api.tasks.bundling.Jar) {
//指定生成的jar名
baseName 'partJar2'
//从哪里打包class文件,可以指定文件和目录
from('build/intermediates/classes/debug/com/example/wuqiyan/exportjar/') {
include 'BuildConfig.class'
}
//打包到jar后的目录结构
into('com/example/wuqiyan/exportjar/')
}
makeJar.dependsOn(clearJar,build)

可以阅读:http://www.alloyteam.com/2015/03/shi-yong-gradle-da-bao-zhi-ding-bao-ming-he-lei-di-jar/

http://www.jianshu.com/p/dc6bcd4478a1

http://blog.csdn.net/edisonchang/article/details/51296265

 

在Android studio中用gradle打 jar 包(Mac下)的更多相关文章

  1. android studio 使用gradle 导出jar包,并打包assets目录

    警告:本文年久失修. 随着android studio的升级 ,gradle的升级,严格按照本文的代码去做可能不会成功,希望依然可以作为解决问题的思路. 最近项目在做一个sdk,供别的开发者使用,所以 ...

  2. [转]--android studio 使用gradle 导出jar包,并打包assets目录

    转自: http://www.cnblogs.com/wuya/p/android-studio-gradle-export-jar-assets.html   最近项目在做一个sdk,供别的开发者使 ...

  3. Android Studio 使用 Gradle 打包 Jar

    Android Studio 打 Jar 包一直是一个麻烦的事,按照网上现有的教程,打包一个混淆的 jar 需要完成下列步骤: 1.将 plugin 修改为 library 后 build 出 aar ...

  4. Android Studio 简介及导入 jar 包和第三方开源库方[转]

    原文:http://blog.sina.com.cn/s/blog_693301190102v6au.html Android Studio 简介 几天前的晚上突然又想使用 Android Studi ...

  5. Android Studio中如何打JAR包

    Android Studio中对于library类型的Moudle,默认打出来的是AAR包, 但有时候我们的SDK还需要共享给一些其他eclipse的项目使用,这样我们就需要输出JAR包, 可以通过在 ...

  6. Android Studio将引用第三方jar包的library打包成jar包

    在该module的build.gradle中添加 task makeJar(type: Jar) { archiveName 'mysdk.jar' from('build/intermediates ...

  7. android studio 引入第三方类库jar包

    第三方类库jar包 这就简单多了,直接将jar包拷贝到app/libs下,然后在app下的build.gradle中添加此jar的依赖.如下: dependencies { compile 'com. ...

  8. android studio打可执行jar包

    android studio可以通过library工程打出jar包 解压会看到META-INF/MANIFEST.MF文件的打开如下: Manifest-Version: 1.0 增加一行,注意冒号后 ...

  9. Android Studio 将module打成jar包

    1.新建测试工程,工程里面有两个module,app是Android工程,mylibrary是Android Library库. 2.打开mylibrary目录下的build.gradle文件,加入下 ...

随机推荐

  1. OpenGL中的数据——Buffer

    OpenGL中主要包括了两种数据——Buffer和Texture. Buffer用于储存线性数无类型据块,可以看成普通的内存块,而Texture则用于储存多维数据,一般储存图像或者其他数据. Buff ...

  2. 数据结构与算法分析java——树1

    1. 基本术语 度(degree):一个节点的子树个数称为该节点的度: 树中结点度的最大值称为该树的度. 层数(level):从根结点开始算,根节点为1 高度(height)/深度(depth):节点 ...

  3. redis未授权访问getshell

    redis未授权访问的问题一年前就爆了,当时刚开始学安全,还不太懂.今天借着工作的机会来搞一把,看看能不能拿下一台服务器.其实前几天就写好了一直想找个实际环境复现一下,一直没有找到,只说下大致思路. ...

  4. 2018.11.10 Mac设置Eclipse的 .m2文件夹是否可见操作&&Mac系统显示当前文件夹的路径设置

    第一行就是设置为可见的记得要重启Finder不然是没有效果的 第二行就是设置为不可见的 打开"终端"(应用程序->实用工具),输入以下两条命令: defaults write ...

  5. ListView与SimpleAdapter

    Adapter可以视作控件与数据之间的桥梁 对ListView做自由布局和填充需要使用到Adapter,这里我们采用SimpleAdapter. 简单来说: 1.定义一个ListItem,其数据结构是 ...

  6. 【题解】洛谷P2926 [USACO08DEC]拍头Patting Heads

    洛谷P2926:https://www.luogu.org/problemnew/show/P2926 思路 对于每一个出现的数 从1到Max 凡是这个数的倍数 那么ans就加上他的个数 PS:最后要 ...

  7. MR中使用sequnceFIle输入文件

    转换原始数据为块压缩的SequenceFIle import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.C ...

  8. GOPL第三章练习题3.3 3.4代码

    练习3.3是peak展示为红色,valley展示为蓝色. 练习3.4是将svg图像打印到浏览器中. // Copyright © 2016 Alan A. A. Donovan & Brian ...

  9. vue富文本编辑,编辑自动预览,单个图片上传不能预览的问题解决:

    //预览<div class="htmlViewBox"> <p v-html="activity_html_defaultMsg" v-sh ...

  10. PL/SQL dev 工具连接远程服务器oracle注意点

    由于Oracle的庞大,有时候我们需要在只安装Oracle客户端如plsql.toad等的情况下去连接远程数据库,可是没有安装Oracle就没有一切的配置文件去支持. 最后终于发现一个很有效的方法,O ...