android studio提供了打包jar的方式,我也就懒得废话了:
第一种情况:所需打包的项目jar只有纯代码未导入任何第三方jar导包:记住,你的这个项目必须是library
在你所需打包的项目的build.gradle的文件中,与android同级的地方加上
//修改jar名字+将指定jar生成的地方 task makeJar(type:Copy){ //如果之前存在,则先删除 delete 'build/libs/demo.jar' //设置拷贝的文件 这个地址不同的android stuidio的版本有点不一样,你们可以自己找找 主要找到里面存在的class.jar文件 from('build/intermediates/packaged-classes/debug/') //生成jar包后的文件目录位置 into('build/libs/') //include,exclude参数来设置过滤 include('classes.jar') //重命名 名字随意命名 rename('classes.jar','demo.jar') }makeJar.dependsOn(build)
然后打开右边的Gradle,找到你的项目,Tasks-other-makeJar,双击等待打包.
如果你打包的时候出现这个错误,在android标签里面加上:
lintOptions { abortOnError false }
然后再点击makeJar打包:如果你的Run界面出现以下界面,恭喜你打包成功:
第二种情况:我们的项目导入了第三方jar包,我使用打包成功的jar发现里面用的第三方jar的方法找不到,然后我解压这个打包的jar,发现,里面只有项目代码,没有第三方jar,怪不得会报错:我也就懒得废话了:
//修改jar名字+将指定jar生成的地方 //把cope改成Jar task makeJar(type: Jar) { //如果之前存在,则先删除 archivesBaseName = "HttpCleanLibrary" //设置拷贝的文件 这几个文件第一个是我的项目class 一下四个是我导入的第三方jar 你导入几个需要写几个 from(project.zipTree('build/intermediates/packaged-classes/debug/classes.jar')) from(project.zipTree('build/intermediates/packaged-classes/debug/libs/okhttp-3.12.0.jar')) from(project.zipTree('build/intermediates/packaged-classes/debug/libs/okio-1.16.0.jar')) from(project.zipTree('build/intermediates/packaged-classes/debug/libs/okhttp-urlconnection-3.10.0.jar')) from(project.zipTree('build/intermediates/packaged-classes/debug/libs/gson-2.8.5.jar')) //生成jar包后的文件目录位置 destinationDir = file('build/libs/') }
我这里有五个,其中我只用到四个外部包,那么我就直接打包四个,然后就可以直接打包了,等打包完成你再看,打包的jar里面就有你所需的第三方jar功能了:
还有一个需要注意,第二种情况导入的第三方包只能是jar,直接在dependencies
配置的前提你得找到其.jar目录,至于我,因为没找到只能在网上下载jar打包!