null pointer in openFileOutput

2019-08-06 01:27发布

I'm trying to use openFileOutput from a class which is not Activity class. When I'm writing something following, it gives me null pointer exception-

try {
            Context con = null;
            fosCAM = con.openFileOutput(camFile, Context.MODE_PRIVATE);
        } catch (FileNotFoundException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }    

Can anyone help me please?

3条回答
SAY GOODBYE
2楼-- · 2019-08-06 01:39

You're receiving a null pointer exception because you're setting the Context variable con to null and then referencing it with con.openFileOutput.

Where are you using this code, in an activity?

If this code is in your Activity, just remove the Context variable and call openFileOutput. You can do this because Activity derives from Context. If the code is in another class you should pass a context into the class and use it.

查看更多
干净又极端
3楼-- · 2019-08-06 01:41

try this if you are using it in non Activity Class:

in your Activity Class try to create a Context and then pass it to your Class Constructor

in your class get the context in class constructor and in your function (which is going to save the file ) get an extra parameter which is Context . now use yourContext.openFileOutput , the same as this :

public void SaveFileIntoStorage(String xml,Context cn) throws IOException

now it should be ok :)

查看更多
等我变得足够好
4楼-- · 2019-08-06 02:01

If you are starting your second class from an Activity, you can pass it your context.

new SecondClass(getBaseContext()).start();

getBaseContext() will return your context, but you should call it from an Activity or equal class.

查看更多
登录 后发表回答