我试图在onCreate
方法中为活动添加Button
并且正在获取空指针异常;下面是我的代码:NPE当试图动态添加按钮到android活动
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// dynamic content
Button b = new Button(this);
b.setText("test");
LinearLayout ll = (LinearLayout) findViewById(R.id.linlayout_main);
ll.addView(b);
}
的logcat:
05-19 18:42:54.658: D/AndroidRuntime(2338): Shutting down VM
05-19 18:42:54.658: W/dalvikvm(2338): threadid=1: thread exiting with uncaught exception (group=0xb4a67ba8)
05-19 18:42:54.668: E/AndroidRuntime(2338): FATAL EXCEPTION: main
05-19 18:42:54.668: E/AndroidRuntime(2338): Process: net.test.Rem, PID: 2338
05-19 18:42:54.668: E/AndroidRuntime(2338): java.lang.RuntimeException: Unable to start activity ComponentInfo{net.test.Rem/net.test.Rem.MainActivity}: java.lang.NullPointerException
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.ActivityThread.access$800(ActivityThread.java:135)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.os.Handler.dispatchMessage(Handler.java:102)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.os.Looper.loop(Looper.java:136)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.ActivityThread.main(ActivityThread.java:5017)
05-19 18:42:54.668: E/AndroidRuntime(2338): at java.lang.reflect.Method.invokeNative(Native Method)
05-19 18:42:54.668: E/AndroidRuntime(2338): at java.lang.reflect.Method.invoke(Method.java:515)
05-19 18:42:54.668: E/AndroidRuntime(2338): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
05-19 18:42:54.668: E/AndroidRuntime(2338): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
05-19 18:42:54.668: E/AndroidRuntime(2338): at dalvik.system.NativeStart.main(Native Method)
05-19 18:42:54.668: E/AndroidRuntime(2338): Caused by: java.lang.NullPointerException
05-19 18:42:54.668: E/AndroidRuntime(2338): at net.test.Rem.MainActivity.onCreate(MainActivity.java:36)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.Activity.performCreate(Activity.java:5231)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
05-19 18:42:54.668: E/AndroidRuntime(2338): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
05-19 18:42:54.668: E/AndroidRuntime(2338): ... 11 more
36号线是ll.addView(b);
我就使这是因为setContentView
不被LinearLayout
之前调用其他地方阅读;但似乎是,或者我错过了什么?
'activity_main'中的'linlayout_main'?如果是这样,发布你的logcat输出。它看起来是正确的。 – codeMagic
没有。现在它正在寻找错误的布局 – codeMagic
@TonyHopkinson不是该问题的重复。 – ikdc