Android Studio 将module打jar包并使用生成的Jar包

1 整理Android Studio 2.3.3将module打jar包打包过程

1 new 一个 module,如果之前有则用之前的,但是要确保module是library状态,并且主工程已添加依赖在这里插入图片描述在这里插入图片描述
在这里插入图片描述
2 android studio 会在library所依赖的 app运行 或 build 之后自动生成 jar 包,路径为 Module根目录/build/intermediates/bundles/debug or release/classes.jar,如果没有则可以在Terminal 里运行 gradlew build或 ./gradlew build
3 如果运行gradlew build报错:Execution failed for task ‘:app:lint’

Wrote HTML report to file:///E:/AndroidStudioProjects/xxx/app/build/reports/lint-results.html
Wrote XML report to file:///E:/AndroidStudioProjects/xxx/app/build/reports/lint-results.xml
 * What went wrong:
Execution failed for task ':app:lint'.
 Lint found errors in the project; aborting build.

Fix the issues identified by lint, or add the following to your build script to proceed with errors:
  ...
  android {
      lintOptions {
          abortOnError false
      }
  }
  ...

解决方法:
在主项目的build.gradle 里添加:

android {
    	 lintOptions {
        	abortOnError false//忽略lint警告,否则会打包失败
    	}
 }

在这里插入图片描述
4 在module的build.gradle的添加

android {
task makeJar(type: Copy) {
       delete 'build/meSDK.jar' //删除之前的旧jar包
       from('build/intermediates/bundles/default/') //从这个目录下取出默认jar包
       into('build/libs/') //将jar包输出到指定目录下
       include('classes.jar')
       rename('classes.jar', 'meSDK.jar') //自定义jar包的名字
   }
   makeJar.dependsOn(build)
}

5 在 Android Studio 终端窗口Terminal 中输入 gradlew makeJar 命令,回车执行
在这里插入图片描述
执行完成后,jar包会输出到指定目录下。
在这里插入图片描述

2 使用生成的Jar包

1 将生成的Jar包(例如上面生成的meSDK.jar),拷贝到项目libs包下,右击然后选择Add AS Library,则可以使用meSDK内部的方法啦
在这里插入图片描述
(回顾下之前生成meSDK.jar之前的Library里定义的类的方法):
在这里插入图片描述

3 Android Studio 3.1.2打Jar包

1 android studio3.1.2的时候bundles目录不存在了,改为packaged-classes。
则配置如下

task makeJar(type: Copy) {
        delete 'build/meSDK.jar' //删除之前的旧jar包
        from('build/intermediates/packaged-classes/release') //从这个目录下取出默认jar包
        into('build/libs/') //将jar包输出到指定目录下
        include('classes.jar')
        rename('classes.jar', 'meSDK.jar') //自定义jar包的名字
    }
    makeJar.dependsOn(build)
  

2 然后,选中library的Module,点击Make Module library,此时packaged-classes目录即可生成。
在这里插入图片描述
3 在 Android Studio 终端窗口Terminal 中输入 gradlew makeJar 命令,回车执行,执行完成后,jar包会输出到指定目录下。

4 配置Jar包方法

方法1:

def _BASENAME = "TestJar";
def _VERSION = "_V1.0";
def _DestinationPath = "build"; //生成jar包的位置
def zipFile = file('build/intermediates/bundles/default/classes.jar'); //待打包文件位置

task deleteBuild(type:Delete){
    delete _DestinationPath + _BASENAME + _VERSION + ".jar"
}
task makeJar(type:Jar){
    from zipTree(zipFile)
    from fileTree(dir:'src/main',includes:['assets/**']) //将assets目录打入jar包  
    baseName = _BASENAME + _VERSION
    destinationDir = file(_DestinationPath)
}
makeJar.dependsOn(deleteBuild, build)

方法2:

task makeJar(type: Copy) {
    delete 'build/TestJar_V1.0.jar' //删除之前的旧jar包
    from('build/intermediates/bundles/default/') //从这个目录下取出默认jar包
    into('build/') //将jar包输出到指定目录下
    include('classes.jar')
    rename('classes.jar', 'TestJar_V1.0.jar') //自定义jar包的名字
}
makeJar.dependsOn(build)

方法3:

task clearJar(type: Delete) {
    delete 'build/TestJar_V1.0.jar' //jar包的名字,随便命名 
}
task makeJar(type:org.gradle.api.tasks.bundling.Jar) {
    //指定生成的jar名 
    baseName 'TestJar_V1.0'
    //从哪里打包class文件 
    from('build/intermediates/bundles/default/')
    //打包到jar后的目录结构 
    into('build/')
    //去掉不需要打包的目录和文件 
    exclude('test/', 'BuildConfig.class', 'R.class')
    //去掉R开头的文件  
    exclude{it.name.startsWith('R');}
}
makeJar.dependsOn(clearJar, build)

5 打Jar包方式

方式1:在 Android Studio 终端窗口Terminal 中输入 gradlew makeJar 命令
方式2:通过Gradle -->Library —> Tasks —> other — > makeJar方法
在这里插入图片描述
参考了Now,DayBreak的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值