Android Studio 将libs下的JAR打到总的Jar包下

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jia635/article/details/70337903

整理对外的SDK,自己项目中用到以前写的一些Jar的库,刚开始以为build/intermediates/bundles下的class.jar 就可以使用,但是测试运行发现 libs 下引用的Jar 包中的类没包括进去。如果要打的Jar工程libs 中没有依赖第三方Jar包是可以直接只用该目录下的class.jar的,但是运行发现报 classnotdeffound 错误,于是摸索这使用gradle 把libs 下的 Jar包也打进去。代码如下

 task makeJar(type: Jar) {
        archiveName = 'domob_android_sdk.jar'
        from('build/intermediates/classes/release/')
        from (project.zipTree('libs/aaa.jar'))
        from (project.zipTree('libs/bbb.jar'))
        from (project.zipTree('libs/ccc.jar'))
        destinationDir = file('build/lib')
    }


domob_android_sdk.jar 是要生成的Jar包的名称


build/intermediates/classes/release/  是把该文件夹下的所有class文件都打包到 domob_android_sdk.jar 下

aaa.jar,  bbb.jar , ccc.jar 都是要打SDK工程下libs 中的Jar包

destinationDir = file('build/lib') 是生成的Jar包的位置


gradle 有自己的语法 makeJar 是任务名称,可以在gradle 中看到 ,type 是生成Jar形式,还有比较常见的 Copy,Delete。结构大概如下图




点击Android Studio右侧的gradle,然后再找到打包的工程,即可看到Tasks,里面包括other在other 中makeJar 这个任务就可以找打了,点击 makeJar ,运行成功就生成完整的Jar,包括工程中的class文件,libs下的 Jar 相关的class






没有更多推荐了,返回首页