我的问题是我的应用中的某个特定活动由于某种原因无法启动,它会抛出:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
看起来像这样的所有其他启动代码工作正常,问题仅在我启动Player1
时。这门课确实存在,我无法理解这是什么问题。
我正在从名为Player1
的活动中启动名为ChooseLevel
的活动。按下某个按钮时,呼叫为:
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()
的例外。 如果有人知道为什么会发生这种情况,请分享:)
答案 0 :(得分:0)
使用context,getApplicationContext()or
getActivity()`
Intent intent = new Intent(context, Player1.class);
Bundle b = new Bundle();
b.putInt("game_level", 1);
intent.putExtras(b);
startActivity(intent);
finish();