๊ด€๋ฆฌ ๋ฉ”๋‰ด

ruriruriya

[Java] java.lang.NullPointerException: Attempt to invoke virtual method '-' on a null object reference ๋ณธ๋ฌธ

๐ŸžDebugging Story

[Java] java.lang.NullPointerException: Attempt to invoke virtual method '-' on a null object reference

๋ฃจ๋ฆฌ์•ผใ…‘ 2023. 12. 22. 16:52
๋ฐ˜์‘ํ˜•

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.CountDownTimer.cancel()' on a null object reference

 

์•Œ๋žŒ๊ธฐ๋Šฅ์˜ ์–ดํ”Œ์„ ๋งŒ๋“ค๋‹ค๊ฐ€ ํƒ€์ด๋จธ ์ทจ์†Œ ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ
์‹œ์ž‘์„ ๋ˆ„๋ฅด์ง€ ์•Š๊ณ  ์ทจ์†Œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋‹ˆ ์–ดํ”Œ์ด ๊ฐ•์ œ์ข…๋ฃŒ๋˜์—ˆ๋‹ค.

Logcat์„ ์‚ดํŽด ๋ณด๋‹ˆ ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค.

 

์›์ธ

์›์ธ์€ ๋งด๋ฒ„๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•œ ๋’ค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ (์‹œ์ž‘ ๋ฒ„ํŠผ) ์ทจ์†Œ๋ฅผ ํ•ด์„œ ๋‚˜์˜จ

NullPointer ์—๋Ÿฌ์˜€๋‹ค.

 

ํ•ด๊ฒฐ๋ฐฉ๋ฒ• 

์ทจ์†Œ ๋ฒ„ํŠผ ํด๋ฆญ ๋ฉ”์†Œ๋“œ์—์„œ if๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ–ˆ๋Š”์ง€ ์•ˆํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์—ฌ
๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋„˜์–ด๊ฐ€๋„๋ก ํ–ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด CPU๊ฐ€ ๋‚ด๋ ค๊ฐ€์ง€ ์•Š๋Š”๋‹ค.

        btnCancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                // ๊ฐ์ฒด ์ƒ์„ฑํ–ˆ๋Š”์ง€ ์•ˆํ–ˆ๋Š”์ง€ ํ™•์ธ ํ›„
                if(countDownTimer == null){
                    return;
                }

                // ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ํƒ€์ด๋จธ๋ฅผ ์ทจ์†Œ์‹œํ‚จ๋‹ค.
                countDownTimer.cancel();

                // ํ™”๋ฉด์— ๋‚จ์€ ์ดˆ๋ฅผ,
                // ์œ ์ €๊ฐ€ ์ž…๋ ฅํ–ˆ๋˜ ์„ธํŒ…๊ฐ’์œผ๋กœ ๋‹ค์‹œ ๋ณด์—ฌ์ค€๋‹ค.

                String strTime = editTime.getText().toString().trim();
                txtTime.setText(strTime);


            }
        });
๋ฐ˜์‘ํ˜•