我一直在尝试使用CacheManager来缓存一些http 请求但每次都有一个nullpointer异常失败。后 一些挖掘我相信我找到了原因:
CacheManager.getCacheFileBaseDir()
总是返回null,所以当我尝试时
使用CacheManager.getCacheFile()
或CacheManager.saveCacheFile()
他们失败了。
CacheManager.cacheDisabled()
返回false。
我没有通过AVD管理器创建缓存分区,所以我想
问题出在那里。但是在创建缓存分区之后
getCacheFile()
仍然返回null:
03-16 00:25:16.321: ERROR/AndroidRuntime(296): Caused by: java.lang.NullPointerException
03-16 00:25:16.321: ERROR/AndroidRuntime(296): at android.webkit.CacheManager.getCacheFile(CacheManager.java:296)
可能是什么问题?我已经在这里发布了代码: http://pastebin.com/eaJwfXEK 但它有点乱,因为我一直在尝试大量的东西。
为什么CacheManager.getCacheFileBaseDir()
返回null而不是File对象?
答案 0 :(得分:1)
可能与http://code.google.com/p/android/issues/detail?id=7222有关:CacheManager只能用于与WebView关联。游民。我会继续调查。
答案 1 :(得分:0)
似乎有一个init(Context context)方法可以调用 但是通过查看源代码,此方法不公开 我无法从我的代码中调用此方法。
我一直: 显示java.lang.NullPointerException 在android.webkit.CacheManager.getCacheFile(CacheManager.java:295)