最近在研究sdk的开发,遇到了AndroidStudio打jar的问题,,,执行打jar包的操作我们都可以生成一个jar包,但是这个jar包里面的呈现内容  和  eclipse打jar包的呈现内容是不是一样呢,有三种执行操作,但是打的jar包内容不同(eclipse 打jar包非常简单)
//1.此种打包方式 jar包没有META-INF文件 不会存在
 task makeJar(type: Copy) {
    delete 'build/libs/demo.jar'
    from('build/intermediates/bundles/default/')
    into('build/libs/')

include('classes.jar')

rename('classes.jar', 'smarters.jar')

}

makeJar.dependsOn(build)
//2.此种方式打包 会将META-INF文件  放在包名下   即:包 包含 META-INF文件
task clearJar(type: Delete) {
    delete 'build/libs/smarter.jar'
    delete 'libs/smarter.jar'
}
//打包任务
task makeJar(type: org.gradle.api.tasks.bundling.Jar) {
    //指定生成的jar名
    baseName 'smarter'
    //从哪里打包class文件
    from('build/intermediates/classes/debug/com/smarter/mylibrary')
    //打包到jar后的目录结构
    into('com/smarter/mylibrary/')
    //去掉不需要打包的目录和文件
    exclude('BuildConfig.class', 'R.class')
    //去掉R$开头的文件
    exclude { it.name.startsWith('R$'); }
    //此段代码将相关信息写到META-INF文件中的MANEFEST.MF文件
    manifest {
        attributes(
                'Implementation-Title': "${project.name}",
                //'Implementation-Version': "${version}",
                'Implementation-Version': "2.0",
                'Built-Date': new Date().getDateTimeString(),
                'Built-With':
                        "gradle-${project.getGradle().getGradleVersion()},groovy-${GroovySystem.getVersion()}",
                'Created-By':
                        'Java ' + System.getProperty('java.version') + ' (' + System.getProperty('java.vendor') + ')')
    }

}
makeJar.dependsOn(clearJar, build)

强烈建议此种方式打jar包   与eclipse打的 jar包    一模一样
//3.META-INF文件  与   包文件    并列(与eclipse打包之后的  jar包目录方式一致)
task jarMyLib(type: Jar, dependsOn: ['build']) {
    archiveName = 'smarter.jar'
    from('build/intermediates/classes/release')
    destinationDir = file('build/libs')
    exclude('android')//去掉android这个文件夹
    exclude('com/smarter/mylibrary/BuildConfig.class')
    exclude('com/smarter/mylibrary/BuildConfig\$*.class')
    exclude('**/R.class')
    exclude('**/R\$*.class')
manifest {
        attributes(
                'Implementation-Title': "${project.name}",
                'Implementation-Version': "${version}",
                'Built-Date': new Date().getDateTimeString(),
                'Built-With':
                        "gradle-${project.getGradle().getGradleVersion()},groovy-${GroovySystem.getVersion()}",
                'Created-By':
                        'Java ' + System.getProperty('java.version') + ' (' + System.getProperty('java.vendor') + ')')
    }
}

AndroidStudio打jar包(包含META-INF文件)相关推荐

  1. matlab jar包,Matlab 將m文件打包成jar包 (二)使用jar包

    一.准備工作 1.在java工程文件夾(此處即desDesign)下新建lib文件夾,用於存放需引用的jar包: 說明: 因為是matlab打包的jar包,需要依賴matlab中的相關函數,所以要將j ...

  2. java jar包资源文件_深入jar包:从jar包中读取资源文件

    我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看 ...

  3. java 如何读取jar包内资源文件_【解惑】深入jar包:从jar包中读取资源文件

    我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看 ...

  4. cmd库的导入Java,在cmd命令窗口导入第三方jar包来运行java文件

    在cmd命令窗口导入第三方jar包来运行java文件,以下测试都是基于window环境,Linux环境没有测试. 1.编译 使用命令javac -cp或者javac -classpath 本机测试:如 ...

  5. 从jar包中读取资源文件

    :[解惑]深入jar包:从jar包中读取资源文件 精华帖 (3) :: 良好帖 (15) :: 新手帖 (9) :: 隐藏帖 (0) 作者 正文 Heart.X.Raid 等级: 性别: 文章: 72 ...

  6. 获取jar包内部的资源文件

    通常获取一个资源文件很简单,问题是对于jar包内的资源文件,可能会发生意外.假如这里有一个文件操作的类: public class FileLoader {public boolean exists( ...

  7. 删除jar包中的指定文件

    如何删除jar包中的指定文件呢? 当然使用解压缩软件(rar,zip,7z)肯定没问题.但是我想自动化,图形界面的工具就无能为力了. 核心方法: Java代码   /*** * 删除jar包中的内容 ...

  8. java读取同包文件_Java实现从jar包中读取指定文件的方法

    本文实例讲述了Java实现从jar包中读取指定文件的方法.分享给大家供大家参考,具体如下: 以下的Java代码实现了从一个jar包中读取指定文件的功能: /** * This class implem ...

  9. android.mk 添加v7_Android.mk引入第三方jar包和so库文件的方法

    以SystemUI为例,如果需要在SystemUI中引入第三方jar包以及so库,可作如下处理: 首先,在frameworks\base\packages\SystemUI下新建libs目录: 将需要 ...

最新文章

  1. imrot matlab,Matlabtuxiangpipei
  2. group_concat
  3. 青龙羊毛——杀猪盘(搬砖,非原创)
  4. linux运维实战练习
  5. 【Android 修炼手册】Gradle 篇 -- Gradle 的基本使用
  6. swagger生成示例_生成器设计模式示例
  7. broadcast receiver 接收设备重启意图( boot_completed Broadcast Intent)而重启定时器
  8. WebService学习笔记系列(四)
  9. 【POJ Challenge】生日礼物 加强m子段和
  10. 微软账号被暂时停用咋办_游戏账号交易要注意什么?买游戏账号有哪些可能会被找回去...
  11. 7-7 找最小的字符串 (15 分)
  12. 19-random猜数
  13. mysql sleep进程 java_请教java更新mysql,更新进程sleep
  14. Intellij Idea 导入项目
  15. jQuery 3D图片切换动画
  16. 【juns项目】信用卡数据项目2-1:需求和效果展示
  17. 关于PCB的机械层和差分布线、RC滤波
  18. windows2003+apache2.2+python2.7配置django mod_wsgi
  19. Python_小林的爬取QQ空间相册图片链接程序
  20. MXL90614红外线测温传感器

热门文章

  1. 如何内网映射拥有自己的域名
  2. java netty教程_Netty学习教程之基础使用篇
  3. win7 mysql 卸载不干净,大师教您win7系统彻底卸载Mysql数据库的设置办法
  4. GameFramework框架——辅助工具
  5. 深入解剖JVM内存区域
  6. 进程和线程的主要区别(总结)
  7. 以下选项中不是具体的python序列类型的是_以下选项中,不是具体的Python序列类型的是:( )...
  8. 在Linux上搭建ftp服务器
  9. tortoise.exceptions.OperationalError: near “ORDER“: syntax error
  10. iPhone图片设计问题