尝试从缓存中接收图像时出现NullPointerException

时间:2016-01-20 00:37:31

标签: java android caching nullpointerexception

-edit 2.在我的移动设备上按预期测试。愚蠢的android avd

我收到错误,我不太确定如何修复它。我可以删除缓存图像的需要,但这会增加应用程序所需的带宽。 我当前的代码应该工作,但它抛出NullPointerException 这是错误

java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File android.content.Context.getCacheDir()' on a null object reference
                                                                                           at android.content.ContextWrapper.getCacheDir(ContextWrapper.java:232)
                                                                                           at com.program.programmy.application.FileCache.<init>(FileCache.java:18)

这是导致问题的代码是**行18包围的那个

public FileCache(Context context) {
    // Find the dir to save cached images
    if (android.os.Environment.getExternalStorageState().equals(
            android.os.Environment.MEDIA_MOUNTED))
        cacheDir = new File(
                android.os.Environment.getExternalStorageDirectory(),
                "ParseListViewImgTxt");
    else
        **cacheDir = context.getCacheDir();**
    if (!cacheDir.exists())
        cacheDir.mkdirs();
}

如果有人可以帮忙解决这个问题我的程序应该没问题。欢呼声

- 编辑

这只是当我试图让列表意图看一个对象时。以下是提示错误的区域中的一些代码

view.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent(context, SingleItemView.class);
                context.startActivity(intent);
            }
        });

此处还有类似我正在做的事情的链接,除了没有人遇到问题我

1 个答案:

答案 0 :(得分:0)

每当调用构造函数时,您都不会在上下文中发送任何对象。 上下文对象为null时发生异常,并且您正在调用getCacheDir()方法。

如果您在获取上下文对象时遇到问题。请阅读以下链接中的最高投票答案: Static way to get 'Context' on Android?