![](/img/trans.png)
[英]Java.lang.NullPointerException at getapplicationContext() Android
[英]Can't getApplicationContext. because java.lang.NullPointerException
我想要 make 机制,我可以从应用程序的任何地方调用它来写入文件。
我做下一节课:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import android.content.Context;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import android.app.Activity;
import android.os.Environment;
import android.util.Log;
import android.content.Context;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class LogFile extends Activity {
public void writeFile(String msg)
{
Log.d("writeFile", "writeToFile");
try {
Context context = getApplicationContext();
FileOutputStream fos = context.openFileOutput("log.txt", Context.MODE_PRIVATE);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter outputStream = new BufferedWriter(osw);
outputStream.write(msg);
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
Log.d("writeFile", "File not found");
} catch (NullPointerException e) {
e.printStackTrace();
Log.d("writeFile", "NullPointerException");
} catch (IOException e) {
e.printStackTrace();
Log.d("writeFile", "File problems");
}
}
}
但在这一行Context context = getApplicationContext();
我有错误
W/System.err: java.lang.NullPointerException
W/System.err: at android.content.ContextWrapper.openFileOutput(ContextWrapper.java:185)
W/System.err: at com.example.tracklogger.LogFile.writeFile(LogFile.java:37)
我不确定这是解决您的问题或使其发挥作用的“正确”方法。 我认为问题在于您正在传递 Activity 上下文的值(这是 null,因此它会抛出该异常)并且您需要应用程序的上下文。
在我的个人情况下,我解决了类似的问题如下:
GlobalVars.java 文件,包含所有“全局变量”,如应用程序上下文(不是活动的上下文):
public class GlobalVars extends Application {
public static Context context;
@Override public void onCreate() {
super.onCreate();
context = getApplicationContext();
}
}
取自此处: 获取应用程序上下文
祝你好运,编码愉快!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.