【问题标题】:countdowntimer-app-keeps-crashing (java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context.getApplicationInfo()')countdowntimer-app-keeps-crashing(java.lang.NullPointerException:尝试调用虚拟方法'android.content.Context.getApplicationInfo()')
【发布时间】:2020-09-20 10:01:31
【问题描述】:

我是 android studio 的初学者,我试图在 android studio 中构建一个计时器应用程序,但它总是崩溃,我不明白为什么有人可以帮忙

这是我的代码

package com.example.timers;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.os.CountDownTimer;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

TextView hello;
CountDownTimer countDownTimer;

public MainActivity() {
    hello = (TextView) findViewById(R.id.textView);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    countDownTimer = new CountDownTimer(10000,1000) {
        @Override
        public void onTick(long l) {
            hello.setText(String.valueOf(l/1000));
        }

        @Override
        public void onFinish() {

        }
    }.start();
}

}

这是它在 logcat 节目中显示的内容

2020-09-20 15:09:50.663 13306-13306/com.example.timers E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.timers, PID: 13306
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.timers/com.example.timers.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2679)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
    at android.app.ActivityThread.-wrap11(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6494)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
    at android.content.ContextWrapper.getApplicationInfo(ContextWrapper.java:152)
    at android.view.ContextThemeWrapper.getTheme(ContextThemeWrapper.java:157)
    at android.content.Context.obtainStyledAttributes(Context.java:655)
    at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:839)
    at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:806)
    at androidx.appcompat.app.AppCompatDelegateImpl.findViewById(AppCompatDelegateImpl.java:630)
    at androidx.appcompat.app.AppCompatActivity.findViewById(AppCompatActivity.java:223)
    at com.example.timers.MainActivity.<init>(MainActivity.java:15)
    at java.lang.Class.newInstance(Native Method)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1174)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2669)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) 
    at android.app.ActivityThread.-wrap11(Unknown Source:0) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loop(Looper.java:164) 
    at android.app.ActivityThread.main(ActivityThread.java:6494) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 

请有人帮我解决这个问题,我已经尝试了很长时间,但仍然没有找到适用于 udemy 上的其他人的解决方案,但不适用于我的我什至看过 youtube 视频,但它仍然不起作用

【问题讨论】:

    标签: android crash logcat


    【解决方案1】:

    删除

    public MainActivity() {
        hello = (TextView) findViewById(R.id.textView);
    }
    

    并在onCreate方法中初始化hello对象

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        hello = (TextView) findViewById(R.id.textView);
        countDownTimer = new CountDownTimer(10000,1000) {
            @Override
            public void onTick(long l) {
                hello.setText(String.valueOf(l/1000));
            }
    
            @Override
            public void onFinish() {
    
            }
        }.start();
    }
    

    【讨论】:

      猜你喜欢
      • 2018-04-03
      • 2020-10-31
      • 2018-09-07
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多