android studio生成jar包
简要概述,gradle配置:
1.在工程中如果存在重复使用的jar,在gradle文件dependencies下该jar配置的权限需要设置为provided。
2.如果项目中使用了jni,需要在dependencies里配置 compile fileTree(dir: “$buildDir/native-libs”, include: ‘native-libs.jar’),生成jni的jar包。(如果项目中没有使用ndk此步骤可以省略);
3.在grade里配置以下代码。
如果项目中使用了jni需要配置以下代码, 没有使用jni略过此段代码。
task nativeLibsToJar(type: Zip, description: ‘create a jar archive of the native libs’) {
destinationDir file(“$buildDir/native-libs”)
baseName ‘native-libs’
extension ‘jar’
from fileTree(dir: ‘libs’, include: ‘*/.so’)
into ‘lib/’
}
tasks.withType(com.android.build.gradle.tasks.PackageApplication) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
//如果没使用jni可以直接使用下面代码
task makeJar(type: Copy) {
delete ‘build/libs/xxxx.jar’
from(‘build/intermediates/bundles/release/’)
into(‘build/libs/’)
include(‘classes.jar’)
rename(‘classes.jar’, ‘gjsdk-1.0.0.jar’)
}
makeJar.dependsOn(build)
在Terminal执行命令grade makeJar
使用gradle打包指定包名和类的jar
下面是参考脚本:
task clearJar(type: Delete) {
delete ‘libs/sdk.jar’
}
task makeJar(type:org.gradle.api.tasks.bundling.Jar) {
//指定生成的jar名
baseName ‘sdk’
//从哪里打包class文件
from(‘build/intermediates/classes/debug/org/cmdmac/cloud/pluginsdk/’)
//打包到jar后的目录结构
into(‘org/cmdmac/cloud/pluginsdk/’)
//去掉不需要打包的目录和文件
exclude(‘test/’, ‘BuildConfig.class’, ‘R.class’)
//去掉R$开头的文件
exclude{ it.name.startsWith(‘R$’);}
}
makeJar.dependsOn(clearJar, build)
在build.gradle写上后,只要在命令行执行gradle makeJar就可以在build/libs目录下找到这个jar
更多相关文章
- 给Android增加分享库.so文件
- Android studio创建android项目学习(一)
- Android项目中使用MVP模式
- Android 项目中values-v11 values-v14
- Android的log保存到文件上查看
- Gears Android WIFI/基站定位源代码分析
- android建立NDK项目调用jrtplib与pc机进行通讯
- 安卓学习(初)第三章(2)(《第一行代码》)
- Android应用程序中Manifest.java文件的介绍