Why can't I use getFilesDir(); in a static context?
android, file, methods, static
Solution
That is because in the static method you have not got the object of the class and getFilesDir is not a static method that means it will only be accessible via the object of class Context.
So what you can do is store the reference to the object in a static variable of your class and then use that in your static method.
for example:
static YourContextClass obj;
static void method(){
File myFile = new File (obj.getFilesDir(), filename );
}
also you will have to store the reference to the object in your onCreateMethod()
obj = this;
The best way to achieve this is
static void method(YourContextClass obj){
File myFile = new File (obj.getFilesDir(), filename );
}
Problem
I have looked everywhere for an answer and every time I see someone else use the method: ``` getFilesDir(); ``` But when I try and use that method in any way, especially: ``` File myFile = new File (getFilesDir();, filename ); ``` Eclipse just says, "Cannot make static reference to non-static method getFilesDir from tye ContextWrapper" I am trying to use it to get the internal directory to write a file for my application. Thanks!