Gradle配置

Build配置文件gradle.build中添加如下task

task clearJar(type: Delete) {
delete 'build/outputs/mylib.jar'
} task copyJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('build/outputs/libs/')
include('classes.jar')
rename ('classes.jar', 'mylib.jar')
} copyJar.dependsOn(clearJar, build)

此方法是直接从把gradle build生成的classes.jar拷贝到指定目录并且重命名,必须依赖build task。

修改dex jar的MANIFEST.MF文件

由于目前gradle的”com.android.application/library”不能和”java” plugin同时使用,所以我们可以使用其他方法来修改,本文中使用python的zipfile来处理。

自定义MANIFEST.MF文件

文件内容如下:

Manifest-Version: 1.0
Gradle-Version: 2.2.1
Created-By: 1.8.0_20-b26 (Oracle Corporation)
Date: 2015-4-15
Author: Leo.Kang
jar-version: 1.0.0

  

Python脚本

例如:新建一个python脚本,命名为updateJarManifest.py

#!/usr/bin/python

import sys,zipfile,shutil,os

def generate():
jar_file = "./mylib_temp.jar"
target_jar = os.path.dirname(jar_file)+"/mylib.jar"
shutil.copy(jar_file, target_jar)
zipped = zipfile.ZipFile(target_jar, 'a', zipfile.ZIP_DEFLATED)
content_file = "META-INF/MANIFEST.MF" mf_file = "./MANIFEST.MF"
zipped.write(mf_file, content_file)
zipped.close()
return target_jar generate()

执行python的shell脚本(mac/linux)/批处理文件(win)

win

新建一个文件命名updateJar.bat文件内容为python updateJarManifest.py

mac/linux

新建一个文件命名为:updateJar.sh,

文件内容为:

#!/bin/bash
#@author Leo.Kang
# 2015-4-15 20:47 python ./ updateJarManifest.py

  

更新build.gradle 配置

task clearJar(type: Delete) {
delete 'build/outputs/mylib.jar'
} task copyJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('build/outputs/libs/')
include('classes.jar')
rename ('classes.jar', 'mylib_temp.jar')
} copyJar.dependsOn(clearJar, build) releaseJar.dependsOn(clearJar, build) task execPython(type:Exec) {
//workingDir file('./')
commandLine './updateJar.sh'
} execPython.dependsOn(releaseJar)

Reference

http://gradle.org/docs/current/dsl/org.gradle.api.tasks.Exec.html

Android Studio build dex jar的更多相关文章

  1. Android studio 中引用jar的其实是Maven?(二)

    上一篇:Android studio 中引用jar的其实是Maven?(一) 搭建maven仓库: 去了解一个新的事物的时候,最好的方式就是去使用它.例如去了解一座城市的时候,最好的方式就是乘坐公共交 ...

  2. Android studio 中引用jar的其实是Maven?(一)

    由于Studio比eclipse多了一步对工程构建的步骤,即为build.gradle这个文件运行,因此其引入第三方开发jar包与lib工程对比Eclipse已完成不同,引入第三方jar与lib工程显 ...

  3. Android Studio 如何打JAR包

    Android Studio 如何打JAR包 在eclipse中我们知道如何将一个项目导出为jar包,供其它项目使用.  在AS中可以通过修改gradle才处理.  我们新建一个项目MakeJar,在 ...

  4. Android Studio导入第三方jar包或依赖工程的方法

    Android Studio导入第三方jar包或依赖工程的方法   一 导入jar包的方法 1.打开自己的工程,将需要导入的jar包copy到libs文件夹下 2.在导入的jar包处单击菜单 Add ...

  5. Android Studio 怎样打JAR包

    Android Studio 怎样打JAR包 在eclipse中我们知道怎样将一个项目导出为jar包,供其他项目使用. 在AS中能够通过改动gradle才处理. 我们新建一个项目MakeJar,在项目 ...

  6. Android Studio 导入系统 jar包

    1.当前需要导入系统jar包的module所对应build.gradle中添加如下依赖: provided files('libs/classes-full-debug.jar') 也可以图形化设置: ...

  7. (转载) android studio library生成jar包和aar的方法总结

    android studio library生成jar包和aar的方法总结 标签: android学习文档jar和aar的使用与生成gradle 2016-11-25 10:39 1782人阅读 评论 ...

  8. Android Studio下导出jar包和aar包

    Android Studio下导出jar包和aar包 jar包和aar包的区别 步骤 1. 创建Android工程 创建工程比较简单,不错复述 2. 创建一个Library(Module) 创建了一个 ...

  9. 安装Android studio出现'tools.jar' seems to be not in Android Studio classpath......的解决方法

    安装Android studio出现'tools.jar' seems to be not in Android Studio classpath......的解决方法 原创 2015年07月31日 ...

随机推荐

  1. bootstrap插件学习

    转自http://v3.bootcss.com/javascript/ bootstrap javascript插件学习 模态框 打开模态框 <button type="button& ...

  2. ModelAndView学习整理

    ModelAndView mav = new ModelAndView("/media/play-video");是什么意思 1.这是SpringMVC里面的问题啊!2.这叫返回一 ...

  3. 一个关于Delphi XML处理单元的BUG

    使用delphi的XML处理单元 XMLDoc XMLIntf 在获取XML文本内容的时候, 高版本的Delphi会丢失编码描述....在D7上却是正常的, 下面是测试源码: procedure TF ...

  4. ansible使用笔记

    ansible使用笔记 介绍 ansible 是一个模型驱动的配置管理器,支持多节点发布.远程任务执行.默认使用 SSH 进行远程连接.无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展.an ...

  5. css3翻牌效果

    原理:通过css3属性-webkit-transform: rotate(0deg)与-webkit-transform: rotate(180deg)对2个元素设置正反面 然后通过有过渡(trans ...

  6. JMeter学习-004-WEB脚本入门实战

    此文为 JMeter 入门实战实例.我是 JMeter 初学菜鸟一个,因而此文适合 JMeter 初学者参阅.同时,因本人知识有限,若文中存在不足的地方,敬请大神不吝指正,非常感谢! 闲话少述,话归正 ...

  7. oracle拼接字符串

    参考:http://www.cnblogs.com/freeliver54/archive/2013/07/01/3165144.html

  8. iOS: 上传App到AppStore,由于Xcode上传太慢,换成Application Loader上传,速度秒传

    一.遇到的遭遇 在之前的项目开发中,本人有点固执,一直采用xcode打包后再上传,结果可想而知: (1)要么上传时速度慢的跟蜗牛似的,等的我心力交瘁(不排除网络不给力的原因,公司这个吊问题快把我气疯了 ...

  9. js 除法 取整

    js 除法 取整 1.丢弃小数部分,保留整数部分 js:parseInt(7/2) 2.向上取整,有小数就整数部分加1 js: Math.ceil(7/2) 3,四舍五入. js: Math.roun ...

  10. ubuntu15.04 安装搜狗输入法

    首先:打开 系统设置->软件和更新,添加以下源, deb http://archive.ubuntukylin.com:10006/ubuntukylin trusty main 然后 sudo ...