1.在build.gradle里面增加以下内容:
task makeJar(type: Copy) { //删除之前的jar delete 'build/libs/mysdk.jar' from('build/intermediates/bundles/release/') //打包到指定目录 into('build/libs/') include('classes.jar') //定义名称变量 def a = "mysdk-"+android.defaultConfig.versionName + ".jar"; //重命名 rename('classes.jar',a);}makeJar.dependsOn(build)
2.在项目根目录运行命令:
./gradview makeJar
即可在置顶目录找到那个jar了。
异常:
* Where:Build file '/home/ubuntu/MyProject/app/build.gradle' line: 1* What went wrong:A problem occurred evaluating project ':app'.> java.lang.UnsupportedClassVersionError: com/android/build/gradle/AppPlugin : Unsupported major.minor version 52.0
遇到这个问题是因为你用了jdk1.7的原因,要你系统的jdk换成1.8就可以了,。
更新:
2017.03.03 不知道是升级了AS还是升级了gradle导致目录有所变化,如图:
这个目录原来是 release 现在变成 default 了,因此
from('build/intermediates/bundles/release/')
这里要改成
from('build/intermediates/bundles/default/')
异常:
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lcom/xxx/xxx/BuildConfig;
遇到这个异常是因为把SDK里面的BuildConfig文件也打包进去了,到此的冲突,所以换一种打包方式吧。
task makeJar1(type:org.gradle.api.tasks.bundling.Jar) { def a = "sdk-"+android.defaultConfig.versionName; //指定生成的jar名 baseName a delete 'build/outputs/libs/'+a //从哪里打包class文件 from('build/intermediates/classes/debug/com/xxx/xxx/') //打包到jar后的目录结构 into('com/xxx/xxx/') //去掉不需要打包的目录和文件 exclude('test/', 'BuildConfig.class', 'R.class') //去掉R$开头的文件 exclude{ it.name.startsWith('R$');}}