所以,我正在移植我的IRC Bot以在我的Tab上运行,它使用4.4.2(API 19)
现在最后一天给我带来问题的功能是引用数据库,它可以添加用户的引号并将它们存储到文件中 - 它们可以被检索和显示。现在,我已经咬牙切齿创建了一个文件。 方法如下:
public void createFile(String filenick){
try {
FileOutputStream os = MainActivity.context.openFileOutput(filenick, 0);
os.close();
} catch (FileNotFoundException e) {
System.out.println("createFile "+filenick+" happened");
} catch (IOException e) {
System.out.println("IO error " + filenick + " happened");
}
}
背景来自
public class MainActivity extends Activity {
public static Context context=new MainActivity().getApplication();
它编译得很好,Android Studio不会给我任何错误。 除了这个以外,Bot可以使用他的所有功能。
java.lang.NullPointerException
at com.coilworks.dreaddroid.QDBClass.createFile(QDBClass.java:175)
at com.coilworks.dreaddroid.QDBClass.adder(QDBClass.java:57)
For Context:QDBClass.java:175是以FileOutputStream开头的行。
57是调用createFile的地方。
到目前为止,我已经尝试了android文档所拥有的每个可能的Outputstreams和writer的迭代。
也许我只是在寻找错误的条款?
答案 0 :(得分:1)
您不应该直接实例化Activity
。这是框架的工作。
public static Context context=new MainActivity().getApplication();
这条线可能是您所看到的许多问题的根源。在这种情况下,context
始终为null
。
答案 1 :(得分:0)
首先,永远不要自己创建活动实例(例如,new Activity()
)。
其次,在创建活动之前不要调用活动实例上的方法(即,至少通过onCreate()
实现的Activity
实现),除非另有特别说明。
根据您的上述代码,context
始终为null
。