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,Android,技术)