这可能是错误的做法,所以请告诉我是否是这种情况:
我正在尝试在另一个类中使用getFileStreamPath(根据我的理解派生自Context),将一些代码与主活动类分开。我这样做是通过将主活动的上下文传递给另一个类,并使用它来调用它的方法。
在我的主要活动课程中:
LocalStorage lc = new LocalStorage(this);
然后,在另一个班级:
public class LocalStorage {
Context ctx;
public LocalStorage (Context c) {
c = ctx;
File lfile = ctx.getFileStreamPath("Activity.log");
....
但显然我遗漏了一些东西,因为在LocalStorage类中传递的上下文上运行getFileStreamPath会导致NullPointerException。
答案 0 :(得分:10)
你的变量倒退了。
c = ctx;
应该是
ctx = c;
您将未初始化的Context
ctx
分配给传入的Context
c
,因此它始终为空。
答案 1 :(得分:1)
你没有写错字吗?
public LocalStorage (Context c) {
ctx = c;
...
答案 2 :(得分:1)
c = ctx ???
Context ctx;
public LocalStorage (Context c) {
c = ctx;
答案 3 :(得分:0)
很难知道代码中的错误是什么,我们错过了信息。但看起来你正在以正确的方式传递上下文。所以问题就在于此。