【问题标题】:Android activity class gives NullPointerException [duplicate]Android活动类给出NullPointerException [重复]
【发布时间】: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


【解决方案1】:

使用上下文,getApplicationContext()orgetActivity()`

Intent intent = new Intent(context, Player1.class);
Bundle b = new Bundle();
b.putInt("game_level", 1);
intent.putExtras(b);
startActivity(intent);
finish();

【讨论】:

  • 呃,不,这不是你应该做的
猜你喜欢
  • 2014-06-24
  • 1970-01-01
  • 2015-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-26
相关资源
最近更新 更多