我正在为我的网络服务开发一个Android应用程序。
我在主要活动中添加了一个注册TextView,并为onClickListener添加了这段代码:
mRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
}
});
单击寄存器TextView时,会在logcat中返回此错误:
01-01 01:36:29.443: E/AndroidRuntime(21558): FATAL EXCEPTION: main
01-01 01:36:29.443: E/AndroidRuntime(21558): java.lang.RuntimeException: Unable to start activity ComponentInfo{us.picbox/us.picbox.RegisterActivity}: java.lang.NullPointerException
01-01 01:36:29.443: E/AndroidRuntime(21558): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1830)
01-01 01:36:29.443: E/AndroidRuntime(21558): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1851)
01-01 01:36:29.443: E/AndroidRuntime(21558): at android.app.ActivityThread.access$1500(ActivityThread.java:132)
01-01 01:36:29.443: E/AndroidRuntime(21558): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1038)
01-01 01:36:29.443: E/AndroidRuntime(21558): at android.os.Handler.dispatchMessage(Handler.java:99)
01-01 01:36:29.443: E/AndroidRuntime(21558): at android.os.Looper.loop(Looper.java:150)
01-01 01:36:29.443: E/AndroidRuntime(21558): at android.app.ActivityThread.main(ActivityThread.java:4293)
01-01 01:36:29.443: E/AndroidRuntime(21558): at java.lang.reflect.Method.invokeNative(Native Method)
01-01 01:36:29.443: E/AndroidRuntime(21558): at java.lang.reflect.Method.invoke(Method.java:507)
01-01 01:36:29.443: E/AndroidRuntime(21558): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-01 01:36:29.443: E/AndroidRuntime(21558): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-01 01:36:29.443: E/AndroidRuntime(21558): at dalvik.system.NativeStart.main(Native Method)
01-01 01:36:29.443: E/AndroidRuntime(21558): Caused by: java.lang.NullPointerException
01-01 01:36:29.443: E/AndroidRuntime(21558): at us.picbox.RegisterActivity.onCreate(RegisterActivity.java:85)
01-01 01:36:29.443: E/AndroidRuntime(21558): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
01-01 01:36:29.443: E/AndroidRuntime(21558): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1794)
01-01 01:36:29.443: E/AndroidRuntime(21558): ... 11 more
有人能解释一下这个问题吗?
答案 0 :(得分:3)
我知道问题出在哪里,这是第85行:
findViewById(R.id.sign_in_button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { attemptLogin(); } });
但这在布局上是不存在的。
findViewById()
找不到当前未显示的视图。 必须在视图层次结构中包含android:id="@+id/sign_in_button"
的视图,否则findViewById()
将返回null
并导致此NullPointerException。