安卓无法实例化活动组件信息{com.example.ragefacefolks/com.example.ragefacefolks.MainActivity}:java。lang.NullPointerException
今天是我学习java的第一天。我想不出这个错误的原因
主要活动。java如下所示
package com.example.ragefacefolks;
import 安卓.os.Bundle;
import 安卓.view.ContextMenu;
import 安卓.view.MenuInflater;
import 安卓.view.View;
import 安卓.view.ContextMenu.ContextMenuInfo;
import 安卓.widget.Button;
import 安卓.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
Button bMain = (Button) findViewById(R.id.button1);
@Override
public void registerForContextMenu(View view) {
// TODO Auto-generated method stub
super.registerForContextMenu(bMain);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
}
你们知道它的原因并不难。我需要一点帮助。 log cat正在显示这些结果
09-27 07:59:24.677: D/AndroidRuntime(555): Shutting down VM
09-27 07:59:24.677: W/dalvikvm(555): threadid=1: thread exiting with uncaught exception (group=0x40015560)
09-27 07:59:24.707: E/AndroidRuntime(555): FATAL EXCEPTION: main
09-27 07:59:24.707: E/AndroidRuntime(555): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.ragefacefolks/com.example.ragefacefolks.MainActivity}: java.lang.NullPointerException
09-27 07:59:24.707: E/AndroidRuntime(555): at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
09-27 07:59:24.707: E/AndroidRuntime(555): at 安卓.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
09-27 07:59:24.707: E/AndroidRuntime(555): at 安卓.app.ActivityThread.access$1500(ActivityThread.java:117)
09-27 07:59:24.707: E/AndroidRuntime(555): at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
09-27 07:59:24.707: E/AndroidRuntime(555): at 安卓.os.Handler.dispatchMessage(Handler.java:99)
09-27 07:59:24.707: E/AndroidRuntime(555): at 安卓.os.Looper.loop(Looper.java:123)
09-27 07:59:24.707: E/AndroidRuntime(555): at 安卓.app.ActivityThread.main(ActivityThread.java:3683)
09-27 07:59:24.707: E/AndroidRuntime(555): at java.lang.reflect.Method.invokeNative(Native Method)
# 1 楼答案
拆线
并更改
onCreate
方法不需要重写
registerForContextMenu
方法# 2 楼答案
这个
应该在
setContentView
之后的onCreate
中。您可以在任何方法之外初始化它# 3 楼答案
您不能呼叫:
在这样的类中(特别是不能在
onCreate
之前调用)将此代码移到
onCreate