Java 启动Android活动会产生NullPointerException

Java 启动Android活动会产生NullPointerException,java,android,Java,Android,我有一个活动,LookingForGPS,它开始另一个活动,Run。开始运行后,LookingForGPS不会完成,而是在运行中不断更新一些文本视图: Run run = new Run(); if(runHasBeenStarted)run.getAndSetValues(someParameters, this); 据我所知,此返回LookingForGPS活动。但是,过了一段时间(当参数为某个值时),我想启动一个新的活动PostRun。从运行实例的getAndSetValues调用以下方

我有一个活动,LookingForGPS,它开始另一个活动,Run。开始运行后,LookingForGPS不会完成,而是在运行中不断更新一些文本视图:

Run run = new Run();
if(runHasBeenStarted)run.getAndSetValues(someParameters, this);
据我所知,
返回LookingForGPS活动。但是,过了一段时间(当参数为某个值时),我想启动一个新的活动PostRun。从运行实例的getAndSetValues调用以下方法:

private void killEverythingAndProceed(Context context){
    Intent finishRun = new Intent(context, PostRun.class);
    //putting some extras into the intent
    startActivity(finishRun);
}
然后我在startActivity行得到一个NullPointerException:

11-17 08:34:33.647    2472-2472/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: lv.rv1g.kj0112.forward, PID: 2472
java.lang.NullPointerException
        at android.app.Activity.startActivityForResult(Activity.java:3424)
        at android.app.Activity.startActivityForResult(Activity.java:3385)
        at android.app.Activity.startActivity(Activity.java:3627)
        at android.app.Activity.startActivity(Activity.java:3595)
        at lv.rv1g.kj0112.forward.Run.killEverythingAndProceed(Run.java:143)
        at lv.rv1g.kj0112.forward.Run.getAndSetValues(Run.java:88)
        at lv.rv1g.kj0112.forward.LookingForGPS.onLocationChanged(LookingForGPS.java:100)
        at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:279)
        at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:208)
        at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:224)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5017)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
        at dalvik.system.NativeStart.main(Native Method)
我做错了什么?我想这是因为我缺乏面向对象编程的知识。这不是额外因素造成的,上下文也应该是正确的,因为它适用于来自同一实例的另一个方法

编辑:详细说明

LookingForGPS活动有一个LocationManager(不使用服务,因为它有一些太复杂的限制,我无法解决)。每次调用
onLocationChanged
时,都会实例化
Run
活动(我首先检查它是否已实际启动,由用户独立于LocationManager启动),并调用
Run
中的
getAndSetValues
方法,给出一组参数
getAndSetValues
然后在
Run
活动中执行一些计算并更新一些
TextView
。还将执行计算以查看是否满足特定条件。如果已启动,则应该启动
postRun
活动,这是我遇到上述异常时启动的。

问题在于:

看起来
Run
是一个
活动
。切勿使用
new
实例化活动-您不能将以这种方式实例化的活动用于任何您希望使用活动的内容。例如,用作
startActivity()
上下文


要么使用系统为您设置的
活动
实例,要么使用
意图
启动新的活动实例。

如果您查看堆栈跟踪,空指针将抛出
killeverything并继续
,因此我猜更像
上下文
变量为空。这确实是一个活动。如何使用
活动
实例?@Android Developer,如果
上下文
为空,它将在前面的
意图
构造函数中抛出。@Karl取决于您实际想要做什么。问题中没有足够的上下文(sic)来提供具体的指导,除了不使用
new
@laalto实例化活动之外。我用一些额外的信息更新了问题,希望这会更有帮助。你能发布你的全部代码吗,因为很难找到你面临的问题。@Android Developer这里有很多计算,这是我在编辑中描述的重要部分。如果你认为有帮助,我可以发布代码,但我认为不会。
Run run = new Run();