首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NullPointerException on CountDownTimer

NullPointerException on CountDownTimer
EN

Stack Overflow用户
提问于 2014-08-10 11:13:13
回答 1查看 163关注 0票数 0

在我的CuntdownTimerProject中,我对NullPointerException有一个问题。我找不到代码中的错误。我还查看了关于NullPointerException的不同线程,但它们根本帮不了我。

这是我的onCreate:

代码语言:javascript
复制
 public void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        btnStart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startWorkoutTimer(0);

            }
        });
        btnStop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (workoutTimer!=null ){
                    workoutTimer.cancel();

                }
                if (restTimer!=null ){
                    restTimer.cancel();
                }
            }
        });

    }

我这里只用了"null“。logcat还告诉我,NullPointerExeption问题来自于onCreate方法。

逻辑猫:

代码语言:javascript
复制
08-10 13:01:58.254  20626-20626/com.stacktesttimer.app D/dalvikvm﹕ Late-enabling CheckJNI
08-10 13:01:58.314  20626-20626/com.stacktesttimer.app D/AndroidRuntime﹕ Shutting down VM
08-10 13:01:58.314  20626-20626/com.stacktesttimer.app W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41628ba8)
08-10 13:01:58.324  20626-20626/com.stacktesttimer.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.stacktesttimer.app, PID: 20626
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.stacktesttimer.app/com.stacktesttimer.app.MainActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            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:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at com.stacktesttimer.app.MainActivity.onCreate(MainActivity.java:24)
            at android.app.Activity.performCreate(Activity.java:5231)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            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:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
08-10 13:02:30.834  20626-20626/com.stacktesttimer.app I/Process﹕ Sending signal. PID: 20626 SIG: 9
08-10 13:03:10.524  20845-20845/com.stacktesttimer.app D/dalvikvm﹕ Late-enabling CheckJNI
08-10 13:03:10.604  20845-20845/com.stacktesttimer.app D/AndroidRuntime﹕ Shutting down VM
08-10 13:03:10.604  20845-20845/com.stacktesttimer.app W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41628ba8)
08-10 13:03:10.604  20845-20845/com.stacktesttimer.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.stacktesttimer.app, PID: 20845
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.stacktesttimer.app/com.stacktesttimer.app.MainActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            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:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at com.stacktesttimer.app.MainActivity.onCreate(MainActivity.java:24)
            at android.app.Activity.performCreate(Activity.java:5231)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            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:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
08-10 13:04:06.714  20845-20845/com.stacktesttimer.app I/Process﹕ Sending signal. PID: 20845 SIG: 9
08-10 13:11:31.134  21456-21456/com.stacktesttimer.app D/dalvikvm﹕ Late-enabling CheckJNI
08-10 13:11:31.154  21456-21462/com.stacktesttimer.app D/dalvikvm﹕ Debugger has detached; object registry had 1 entries
08-10 13:11:31.224  21456-21456/com.stacktesttimer.app D/AndroidRuntime﹕ Shutting down VM
08-10 13:11:31.224  21456-21456/com.stacktesttimer.app W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41628ba8)
08-10 13:11:31.224  21456-21456/com.stacktesttimer.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.stacktesttimer.app, PID: 21456
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.stacktesttimer.app/com.stacktesttimer.app.MainActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            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:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at com.stacktesttimer.app.MainActivity.onCreate(MainActivity.java:24)
            at android.app.Activity.performCreate(Activity.java:5231)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            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:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)

谢谢已经提前了。

完整代码:

代码语言:javascript
复制
public class MainActivity extends Activity {


    CountDownTimer workoutTimer;
    CountDownTimer restTimer;
    Button btnStart, btnStop;

    @Override
    public void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        btnStart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startWorkoutTimer(0);

            }
        });
        btnStop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (workoutTimer!=null ){
                    workoutTimer.cancel();

                }
                if (restTimer!=null ){
                    restTimer.cancel();
                }
            }
        });

    }


    public void startWorkoutTimer(final int count ){


        workoutTimer=new CountDownTimer(30000, 1000) {
            @Override
            public void onTick(long millisUntilFinished) {

            }

            @Override
            public void onFinish() {

                if(count!=3){
                    startRestTimer(count);
                }

            }
        };
        workoutTimer.start();

    }


    public void startRestTimer(final int count ){


        restTimer=new CountDownTimer(15000, 1000) {
            @Override
            public void onTick(long millisUntilFinished) {

            }

            @Override
            public void onFinish() {

                if(count!=3){
                    startWorkoutTimer(count+1);
                }

            }
        };
        restTimer.start();

    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-10 11:27:12

btnStop和btnStart不是无效的

你得让他们

代码语言:javascript
复制
btnStart = findViewById(R.id.yourStartbuttonId);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25228008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档