openFileOutput 抛出 NullPointerException(我不知道为什么)
openFileOutput throws NullPointerException (And i dont know why)
所以,我正在将我的 IRC Bot 移植到我的选项卡上的 运行,它使用 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 没有给我任何类型的错误。
机器人可以使用除此之外的所有功能。
java.lang.NullPointerException
at com.coilworks.dreaddroid.QDBClass.createFile(QDBClass.java:175)
at com.coilworks.dreaddroid.QDBClass.adder(QDBClass.java:57)
对于上下文:QDBClass.java:175 是以 FileOutputStream 开头的行。
57 是调用 createFile 的地方。
到目前为止,我已经尝试了 android 文档中所有可能的输出流和编写器迭代。
也许我只是搜索了错误的术语?
您不应该直接实例化 Activity
。这是框架的工作。
public static Context context=new MainActivity().getApplication();
该行可能是您遇到的许多问题的根源。在这种情况下,context
将始终是 null
。
首先,永远不要自己创建 activity 实例(例如,new Activity()
)。
其次,在创建 activity 之前不要在 activity 实例上调用方法(即至少通过 Activity
本身的 onCreate()
实现), 除非特别说明。
根据上面的代码,您的 context
将始终是 null
。
所以,我正在将我的 IRC Bot 移植到我的选项卡上的 运行,它使用 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 没有给我任何类型的错误。 机器人可以使用除此之外的所有功能。
java.lang.NullPointerException
at com.coilworks.dreaddroid.QDBClass.createFile(QDBClass.java:175)
at com.coilworks.dreaddroid.QDBClass.adder(QDBClass.java:57)
对于上下文:QDBClass.java:175 是以 FileOutputStream 开头的行。
57 是调用 createFile 的地方。
到目前为止,我已经尝试了 android 文档中所有可能的输出流和编写器迭代。
也许我只是搜索了错误的术语?
您不应该直接实例化 Activity
。这是框架的工作。
public static Context context=new MainActivity().getApplication();
该行可能是您遇到的许多问题的根源。在这种情况下,context
将始终是 null
。
首先,永远不要自己创建 activity 实例(例如,new Activity()
)。
其次,在创建 activity 之前不要在 activity 实例上调用方法(即至少通过 Activity
本身的 onCreate()
实现), 除非特别说明。
根据上面的代码,您的 context
将始终是 null
。