【发布时间】:2017-06-02 13:33:13
【问题描述】:
我的问题是我的应用程序中的一项特定活动由于某种原因无法启动,它会抛出:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
看起来像这样的所有其他启动代码都可以正常工作,问题仅在我启动Player1 时出现。该类肯定存在,我无法理解问题所在。
我正在从名为 ChooseLevel 的活动中启动名为 Player1 的活动。当按下某个按钮时,调用是:
Intent intent = new Intent(ChooseLevel.this, Player1.class);
Bundle b = new Bundle();
b.putInt("game_level", 1);
intent.putExtras(b);
startActivity(intent);
finish();
日志显示错误在:Player1.onCreate(Player1.java:50)
Player1:50 行中的代码是:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_player1);
changeIndex = 0;
cards = new ArrayList<Card>(8);
score = (TextView) findViewById(R.id.score_text);
message = (TextView) findViewById(R.id.msg_text);
timer = (TextView) findViewById(R.id.timer);
timer.setText(String.valueOf(definitions.TIMER_START)); # LINE 50
Bundle b = getIntent().getExtras();
...
}
当这个启动代码运行时,我会在我的日志中看到这个:
33:04.338 18302-18302/com... D/AndroidRuntime: Shutting down VM
01-18 10:33:04.338 18302-18302/com... E/AndroidRuntime: FATAL EXCEPTION: main
Process: com..., PID: 18302
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.../com....Player1}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
at com....Player1.onCreate(Player1.java:50)
编辑:
我找到了答案,这与我在 Player1.onCreate() 方法中的某个对象有关。 android-studio 以一种奇怪的方式提出了关于 getClass() 的异常。 如果有人知道为什么会这样,请分享:)
【问题讨论】:
-
Player1.onCreate(Player1.java:50)- 该数字是发生异常的行号。看第 50 行。顺便说一句,如果你看过建议副本中的答案,你会知道的。 -
你没有显示抛出异常的行。
-
检查您的 Manifest 文件,您是否在 Manifest 中声明了 Player1?
-
显示抛出异常的行,我复制了onCreate函数的开头。 @h_patel 是的,我现在检查了。
-
@GhostCat 请解释为什么它是重复的,我不明白为什么而且我没有从常规答案中得到答案。
标签: java android android-activity nullpointerexception