在使用Android Studio 开发sdk 时避免不了生成jar文件,通过其它博客中的案例大都是只能对自己的 类文件 生成 jar.
使用gradle 来生成包含第三方jar 包的 任务。
task makeJar(type:org.gradle.api.tasks.bundling.Jar) {
//指定生成的jar名
baseName 'myjar'
//从哪里打包class文件
from('build/intermediates/classes/debug') // release , debug
// 第三方jar 文件
from zipTree('libs/zxing.jar')
//打包到jar后的目录结构
// into('build/libs/') // 生成jar包之后无法正常导包
destinationDir file("$buildDir/outputs/jar")
//去掉不需要打包的目录和文件
exclude('BuildConfig.class', 'R.class')
//去掉R$开头的文件
exclude{ it.name.startsWith('R$');}
}
makeJar.dependsOn(build)
- 注意: 在参考其他博客中使用 into(’build/libs/’) 时 生成的jar下面的文件路径会包含libs .eg; libs.com…, 因此在导包的时候就会出现无法引用。正确的方式使用 destinationDir file(“$buildDir/outputs/jar”)。
在终端执行生成JAR包
// Terminal - > gradlew makeJar
也可以通过右侧 的Gradle 控制台 下 自己的moudel -> Task -> other -> makeJar 双击执行就行。