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_space\volley 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 
然后在”build\intermediates\bundles\release”找到classes.jar, 改名字。

以上。

【转】 Volley NegativeArraySizeException 解决的更多相关文章

  1. Android Volley彻底解决(三),定制自己Request

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17612763 经过前面两篇文章的学习,我们已经掌握了Volley各种Request ...

  2. myeclipse 遇到的一些问题及解决方案

    1..提示键配置 一般默认情况下,Eclipse ,MyEclipse 的代码提示功能是比Microsoft Visual Studio的差很多的,主要是Eclipse ,MyEclipse本身有很多 ...

  3. 解决Volley请求网络数据返回的数据乱码

    本人可参考http://tieba.baidu.com/p/4039693566 以往一般我们如下写就可以了 StringRequest request=new StringRequest(url, ...

  4. ym—— Android网络框架Volley(体验篇)

    VolleyGoogle I/O 2013推出的网络通信库,在volley推出之前我们一般会选择比较成熟的第三方网络通信库,如: android-async-http retrofit okhttp ...

  5. [Android]Volley源码分析(四)

    上篇中有提到NetworkDispatcher是通过mNetwork(Network类型)来进行网络访问的,现在来看一下关于Network是如何进行网络访问的. Network部分的类图:

  6. Android网络请求通信之Volley

    一.Volley简介 Volley网络框架是Google公司在2013年发布的一款Android平台上的网络请求通信库.以下是对Volley的简单归纳. Volley的优点: 使网络通信更快.更简单. ...

  7. 重复发起Volley请求不要使用同一对象

    1.创建volley请求Request request = new JsonObjectRequest(...); 2.添加到队列中mRequestQueue.add(request); reques ...

  8. Android Volley完全解析(一),初识Volley的基本用法

    1. Volley简介 我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据.Android 系统中主要提供了两种方式来进行 ...

  9. 教新手一步步解决:Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to和更新gradle问题

    android studio出现问题:Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_O ...

随机推荐

  1. svn 安装与设置

    Subversion可以通过网络访问它的版本库,从而使用户可以在不同的电脑上使用.一定程度上可以说,允许用户在各自的地方修改同一份数据是促进协作. 运行Subversion服务器需要首先要建立一个版本 ...

  2. hdu 4333(扩展kmp)

    题意:就是给你一个数字,然后把最后一个数字放到最前面去,经过几次变换后又回到原数字,问在这些数字中,比原数字小的,相等的,大的分别有多少个.比如341-->134-->413-->3 ...

  3. C# "error CS1729: 'XXClass' does not contain a constructor that takes 0 arguments"的解决方案

    出现这种错误的原因时,没有在子类的构造函数中指出仅有带参构造函数的父类的构造参数. 具体来讲就是: 当子类要重用父类的构造函数时, C# 语法通常会在子类构造函数后面调用 : base( para_t ...

  4. 锁之“轻量级锁”原理详解(Lightweight Locking)

    大家知道,Java的多线程安全是基于Lock机制实现的,而Lock的性能往往不如人意. 原因是,monitorenter与monitorexit这两个控制多线程同步的bytecode原语,是JVM依赖 ...

  5. Fragment监听返回键

    首先创建一个抽象类BackHandledFragment,该类有一个抽象方法onBackPressed(),所有BackHandledFragment的子类在onBackPressed方法中处理各自对 ...

  6. Android百度地图开发(二)地图覆盖物

    上一篇文章写道如何在一个mapview中简单的显示地图:本次学习一下如何在地图上添加一些覆盖物. 1.设置显示交通地图: // 显示交通地图 mapView.setTraffic(true); 2.设 ...

  7. Android的主要组件

    (一)Activity(活动) 作用:提供可视化用户界面 只能通过setContentView(View)来显示指定组件 View组件是所有UI控件.容器控件的基类,View组件就是android应用 ...

  8. ListView蛮好用

    知识点如下: 1. ListView的基本用法 2. ArrayAdapter和SimpleAdapter的用法 3. OnScrollListener 和 OnItemClickListener 4 ...

  9. WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5

    以下是我的程序(取自headfirst Java): import javax.sound.midi.*; public class MiniMiniMusicApp { public static ...

  10. asp.net mvc 使用Ajax

    使用asp.net mvc 调用Action方法很简单. 一.无参数方法. 1.首先,引入jquery-1.5.1.min.js 脚本,根据版本不同大家自行选择. <script src=&qu ...