http://blog.csdn.net/very_caiing/article/details/46241531
今天在百度统计看项目上有一个crash比较高的bug:
Java.lang.NegativeArraySizeException: -1092 at
com.Android.volley.toolbox.DiskBasedCache.streamToBytes(DiskBasedCache.java:322)
at
com.android.volley.toolbox.DiskBasedCache.get(DiskBasedCache.java:118)
at com.android.volley.CacheDispatcher.run(CacheDispatcher.java:100)
看出是volley的问题,google了一下,发现是volley有这个bug,github上有提到:
https://github.com/mcxiaoke/android-volley/issues/37
修改的代码如下:
https://github.com/mcxiaoke/android-volley/commit/2f317deb8c9cfdf349a9a3b7a90207c2bf5649b7
大致原因就是:当去磁盘缓存中找图片的时候,图片已经被删掉了。
更新Volley库的时候碰到了不少问题,下面简单说明一下……
我发现我们项目中是直接将volley.jar放在libs目录中,并没有将volley整个工程导入进来。于是网上搜索了一下,只需要以下几步:
$ git clone https://android.googlesource.com/platform/frameworks/volley
$ cd volley
$ android update project -p .
$ ant jar
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
于是安装了ant,并把android加入环境变量中,发现还是不行,会报以下的错误:
Error: D:github_spacevolley is not a valid project
(AndroidManifest.xml not found).
确实是没有这个文件,于是翻了好久,终于发现现在google已经用gradle来编译volley了,不是ant了。。。
终于,安装好gradle,结果,又出现下面的错误!!!
Gradle version 2.1 is required. Current version is 2.3. If using the
gradle wrapper, try editing the distributionUrl in
/Users/sunbinqiang/development/others/volley/gradle/wrapper/gradle-wrapper.properties
to gradle-2.1-all.zip
修改了build.gradle里面的SDK和tools信息,终于看到下面的结果了:
BUILD SUCCESSFUL
然后在”buildintermediatesundles elease”找到classes.jar, 改名字。
以上。