Android Studio打jar包

一、基础

1、在build.gradel中添加如下任务

task makeJar(type: Copy) {
     //删除存在的jar
    delete 'build/outputs/my-jar-1.0.0.jar'
    //设置拷贝的文件 (不同设备路径可能一样)
    from('build/intermediates/compile_library_classes/debug/classes.jar')
    //设置输出目录
    into('build/outputs/')
	//jar包重命名
	rename('classes.jar', 'my-jar-1.0.0.jar')
}	

makeJar.dependsOn(build)

2、在Terminal窗口输入gradlew makeJar即可

注:其实项目构建后就生成了我们需要的jar包,这里只是拷贝并重命名了一下,所以在执行步骤2前要先构建一下项目,确保classes.jar已生成。

二、进阶

1、将项目依赖的jar包也集成到我们的jar包中

task makeJar(type: Jar) {
    //删除存在的jar
    delete 'build/outputs/my-jar-1.0.0.jar'
    //输出的jar包文件名
    archivesBaseName = "my-jar-1.0.0"
    //添加class文件 (不同设备路径可能一样)
    from('build/intermediates/javac/release/classes/')
    //添加依赖的第三方jar包
    from(project.zipTree("libs/baidu-2.99.jar"))
    //输出jar包的路径
    destinationDirectory = file('build/outputs/')
	//jar包需要排除的文件
	exclude('com/lpf/demo/BuildConfig.class')
	//jar包需要添加的文件
	include('com/lpf/demo/*.class')
	include('com/baidu/tts/*.class')
	include('com/baidu/tts/**/*.class')
}

makeJar.dependsOn(build)

注:这里的exclude和include可以都不添加,即表示为把from的文件都打到jar包中

2、混淆jar包

def androidSDKDir =  project.android.sdkDirectory
def androidJarDir = androidSDKDir.toString() + '/platforms/' + "${android.compileSdkVersion}" + '/android.jar'
task proguardMyLib(type: proguard.gradle.ProGuardTask) {
    //需要混淆的jar包
    injars('build/outputs/my-01.jar')
    //混淆后的jar包
    outjars('build/outputs/my-pro-01.jar')
    //设置不删除未引用的资源(类,方法等)
    dontshrink
    //不需要混淆的jar包
    libraryjars(androidJarDir)
    //混淆规则
    configuration 'proguard-rules.pro'
    //设置不删除未引用的资源(类,方法等)
    dontshrink
}

proguardMyLib.dependsOn(build)

问题:\proguard\seeds.txt (系统找不到指定的路径)

解:在打jar包的module中新建proguard文件夹即可(seeds.tex会在该目录下自动生成)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值