【转】 Volley NegativeArraySizeException 解决

http://blog.csdn.net/very_caiing/article/details/46241531java

 

今天在百度统计看项目上有一个crash比较高的bug:android

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)git

看出是volley的问题,google了一下,发现是volley有这个bug,github上有提到: 
https://github.com/mcxiaoke/android-volley/issues/37 
修改的代码以下: 
https://github.com/mcxiaoke/android-volley/commit/2f317deb8c9cfdf349a9a3b7a90207c2bf5649b7 
大体缘由就是:当去磁盘缓存中找图片的时候,图片已经被删掉了。github

更新Volley库的时候碰到了很多问题,下面简单说明一下……缓存


我发现咱们项目中是直接将volley.jar放在libs目录中,并无将volley整个工程导入进来。因而网上搜索了一下,只须要如下几步:ruby

$ 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加入环境变量中,发现仍是不行,会报如下的错误:app

Error: D:\github_space\volley is not a valid project 
(AndroidManifest.xml not found).gradle

确实是没有这个文件,因而翻了很久,终于发现如今google已经用gradle来编译volley了,不是ant了。。。 
终于,安装好gradle,结果,又出现下面的错误!!!ui

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.zipgoogle

修改了build.gradle里面的SDK和tools信息,终于看到下面的结果了:

BUILD SUCCESSFUL 
而后在”build\intermediates\bundles\release”找到classes.jar, 更名字。

以上。

相关文章
相关标签/搜索