我对java和androidstudio都是新手(每种都有1天的经验)。
我正在做一个测试应用程序,你轻敲一个核桃,计数器每次上升一个,非常简单。应用程序运行得非常好,但是,今天早上它停止正常运行,每当我尝试运行它时,应用程序就会停止。
我试过几次,把范围缩小到一条线和一个错误,但我不知道该怎么办。
我知道nullpointerexception是什么,但我不知道在这种情况下如何修复它。由于我对ide和语言还不熟悉,所以对于代码中的任何内容,我也绝对欢迎提出任何建议!
截至目前,该应用程序由2个类组成:
mainactivity.java:
package com.nut.calendar;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity{
//WIDGETS
ImageButton nutButton = findViewById(R.id.nutButton);
TextView nutNum = findViewById(R.id.nutsNum);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nutButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Variables.nutCount += 1;
nutNum.setText(String.valueOf(Variables.nutCount));
}
});
}
}
变量.java:
package com.nut.calendar;
public class Variables{
public static int nutCount = 0;
}
错误指向“mainactivity.java”中的第12行:
ImageButton nutButton = findViewById(R.id.nutButton);
logcat中的错误是:
原因:java.lang.nullpointerexception:尝试对空对象引用调用虚拟方法“android.content.pm.applicationinfo android.content.context.getapplicationinfo()”
我真的很感激任何意见!
下面是整个堆栈跟踪:错误
1条答案
按热度按时间6l7fqoea1#
如果你看看android应用程序的生命周期,你就会明白为什么会出现这个错误。当你启动应用程序时,android会在
AppCompatActivity
以一种特殊的方式,你需要打电话findViewById
之后setContentView(R.layout.activity_main);
因为它是setContentView
这就决定了你的命运views
以及findViewById
在它找到任何东西之前就需要设置它view
.