简要概述,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

更多相关文章

  1. 给Android增加分享库.so文件
  2. Android studio创建android项目学习(一)
  3. Android项目中使用MVP模式
  4. Android 项目中values-v11 values-v14
  5. Android的log保存到文件上查看
  6. Gears Android WIFI/基站定位源代码分析
  7. android建立NDK项目调用jrtplib与pc机进行通讯
  8. 安卓学习(初)第三章(2)(《第一行代码》)
  9. Android应用程序中Manifest.java文件的介绍

随机推荐

  1. xtrabackup备份还原MySQL数据库
  2. mysql 5.7.5 m15 winx64.zip安装教程
  3. MySQL 启动成功但未监听端口的解决方法
  4. MySQL因配置过大内存导致无法启动的解决
  5. MySQL关闭密码强度验证功能
  6. MySql忘记密码修改方式适应5.7以上版本
  7. linux配置mysql数据库远程连接失败的解决
  8. Mysql 5.7.9 shutdown 语法实例详解
  9. Centos6.9安装Mysql5.7.18步骤记录
  10. MySQL中查询、删除重复记录的方法大全