使用gradle编译Volley的jar包

时间:2022-06-21 12:25:50

前面已经介绍了Volley网络请求框架的使用,Android官网给出的使用Volley的方式是从google代码仓库克隆Volley的源码,然后把Volley源码作为Android Library导入到你的项目中使用。
但是我还是想怎么样能够把Volley编译成jar包,直接使用jar包,这样用起来比较方便,下面就是我编译Volley的jar包的过程,期间遇到了很多坑。
因为之前老的Volley版本都是用ant构建的,现在都是用gradle构建了,所以我们应该用gradle编译Volley的jar包。

(1)准备gradle

因为已经下载了Android Studio,Android Studio就已经包含了gradle, 所以无需下载。
配置gardle的环境变量。 Android Studio默认使用的gradle是在Android Studio的gradle目录。

-于是我在系统的Path环境变量中添加了Android Studio下gradle目录的bin路径。//注意要配置到gradle的bin路径

-然后在cmd中输入 gradle -v 命令 成功显示了gradle版本信息,

gradle -v

使用gradle编译Volley的jar包

表示gradle环境变量配置成功。这个Android Studio默认的使用的是gralde-2.10 版

(2)开始编译Volley

-然后在cmd中进入下载的Volley源码根目录即volley-master目录,然后输入命令gradle build ,

gradle build 

使用gradle编译Volley的jar包

但是编译报错了。报错信息显示是 gradle request 2.2 ,current version is 2.10,说明需要gradle-2.2的版本。

我们知道Android Studio的目录下的gradle目录中的gradle,只是Android Studio默认使用的gradle版本,
我们在使用Android Studio的时候,如果导入的项目要求不同的gradle版本的话,Android Studio会帮我们下载对应的gradle版本。
而下载后的路径默认是在:

C:\Users\Home-Pc\.gradle\wrapper\dists

C:\Users\Home-Pc.gradle 目录也是其它gradle依赖如 使用到的recycleview等gradle依赖都是下载到这个目录下的。
于是我到C:\Users\Home-Pc.gradle\wrapper\dists查看是否有 gradle-2.2版本的gradle

使用gradle编译Volley的jar包

查看果然有gradle-2.2-all 于是重新配置gradle的环境变量,在path中除去之前配置的gradle-2.10,重新添加这个gradle-2,2-all的bin路径 再重新打开cmd,输入 gradle -v ,成功显示 gardle的版本信息为 gradle 2.2。

如果没有gradle 2.2的版本,我们可以自己到网上下载:
http://www.androiddevtools.cn/

-然后在cmd中再进入 volley-master 目录,输入命令 gradle build,这次不再报gradle的版本的错了,但是又出现SDK location not found 错误。

使用gradle编译Volley的jar包

经过上网查找解决办法,有两种解决办法:
1)第一种是在volley-master目录下新建一个local.properties文件,在里面配置sdk的路径:

 sdk.dir=你的sdk路径

2)第二种是配置一个ANDROID_HOME系统环境变量,环境变量值为你的SDK路径

我选择了第二种方法,在系统的环境变量中新建了ANDROID_HOME环境变量,值配置为我的SDK路径。
使用gradle编译Volley的jar包

然后关闭cmd重新打开cmd进入volley-master目录,输入命令 gradle build,这一次编译了一会儿时间,但是又显示Execution failed for task ‘:javadoc’, javadoc generation failed。

使用gradle编译Volley的jar包

但是这应该是生成javadoc文档相关的错误 。
这个时候 volley-master目录下已经多出了.gradle和build目录。

使用gradle编译Volley的jar包

根据网上的资料,如果jar编译成功的话,在build\intermediates\bundles\release中会有classes.jar,这个classes.jar就是volley的jar包,于是我进入生成的build目录下的intermediates\bundles\release中,果然有classes.jar。

使用gradle编译Volley的jar包

我把这个classes.jar包拷贝出来重命名为volley.jar。

-然后将volley.jar放到新建Androidv Studio项目的libs目录,在libs目录下右击这个volley.jar—>add as library后,就在程序中使用volley成功了。

说明这个编译的volley的jar包是可以使用的。

总结:

虽然在最终编译Volley的jar包时,报了Execution failed for task ‘:javadoc’ ,javadoc generation failed….的错误,但是volley-master目录下生成了build目录,build\intermediates\bundles\release中有classes.jar 就表明 volley的jar包编译成功,可以使用。