Java 调用onClickListener时出现NullPointerException
我正在做一个登录系统,我不知道为什么会发生这种情况。 我如何解决这个问题? 下面是一部分关于NullPointerException的类Java 调用onClickListener时出现NullPointerException,java,android,nullpointerexception,Java,Android,Nullpointerexception,我正在做一个登录系统,我不知道为什么会发生这种情况。 我如何解决这个问题? 下面是一部分关于NullPointerException的类 final TextView registerButton = (TextView)findViewById(R.id.registerButton); registerButton.setOnClickListener(new View.OnClickListener() { @Override public
final TextView registerButton = (TextView)findViewById(R.id.registerButton);
registerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent registerIntent=new Intent(LoginActivity.this, RegisterActivity.class);
LoginActivity.this.startActivity(registerIntent);
}
});
下面是来自logcat的上下文
03-22 10:37:13.066 8500-8500/? E/dex2oat: Failed to create oat file: /data/dalvik-cache/arm/data@app@com.example.gibong.capstone-1@split_lib_dependencies_apk.apk@classes.dex: Permission denied
03-22 10:37:13.141 3897-3897/? E/SDAgentPackageStateReceiver: Not going to handle 'com.example.gibong.capstone'!
03-22 10:37:13.166 6707-6707/? E/Launcher.Model: onPackageAdded :com.example.gibong.capstone
03-22 10:37:13.296 8526-8526/? E/dex2oat: Failed to create oat file: /data/dalvik-cache/arm/data@app@com.example.gibong.capstone-1@split_lib_slice_0_apk.apk@classes.dex: Permission denied
03-22 10:37:13.341 8533-8533/? E/dex2oat: Failed to create oat file: /data/dalvik-cache/arm/data@app@com.example.gibong.capstone-1@split_lib_slice_1_apk.apk@classes.dex: Permission denied
03-22 10:37:13.391 8539-8539/? E/dex2oat: Failed to create oat file: /data/dalvik-cache/arm/data@app@com.example.gibong.capstone-1@split_lib_slice_2_apk.apk@classes.dex: Permission denied
03-22 10:37:13.461 8543-8543/? E/dex2oat: Failed to create oat file: /data/dalvik-cache/arm/data@app@com.example.gibong.capstone-1@split_lib_slice_3_apk.apk@classes.dex: Permission denied
03-22 10:37:13.516 8561-8561/? E/dex2oat: Failed to create oat file: /data/dalvik-cache/arm/data@app@com.example.gibong.capstone-1@split_lib_slice_4_apk.apk@classes.dex: Permission denied
03-22 10:37:13.566 8567-8567/? E/dex2oat: Failed to create oat file: /data/dalvik-cache/arm/data@app@com.example.gibong.capstone-1@split_lib_slice_5_apk.apk@classes.dex: Permission denied
03-22 10:37:13.616 8572-8572/? E/dex2oat: Failed to create oat file: /data/dalvik-cache/arm/data@app@com.example.gibong.capstone-1@split_lib_slice_6_apk.apk@classes.dex: Permission denied
03-22 10:37:13.666 8577-8577/? E/dex2oat: Failed to create oat file: /data/dalvik-cache/arm/data@app@com.example.gibong.capstone-1@split_lib_slice_7_apk.apk@classes.dex: Permission denied
03-22 10:37:13.716 8581-8581/? E/dex2oat: Failed to create oat file: /data/dalvik-cache/arm/data@app@com.example.gibong.capstone-1@split_lib_slice_8_apk.apk@classes.dex: Permission denied
03-22 10:37:13.771 8587-8587/? E/dex2oat: Failed to create oat file: /data/dalvik-cache/arm/data@app@com.example.gibong.capstone-1@split_lib_slice_9_apk.apk@classes.dex: Permission denied
03-22 10:37:14.511 8474-8474/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.gibong.capstone, PID: 8474
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.gibong.capstone/com.example.gibong.capstone.LoginActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
at android.app.ActivityThread.access$1100(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7225)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at com.example.gibong.capstone.LoginActivity.onCreate(LoginActivity.java:35)
at android.app.Activity.performCreate(Activity.java:6876)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
at android.app.ActivityThread.access$1100(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7225)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
由于我的英语和本网站都不流利,我为我糟糕的英语和文字风格道歉
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setOnClickListener(android.view.View$OnClickListener)' on a null object
在下面一行
final TextView registerButton = (TextView)findViewById(R.id.registerButton);
您是否传递了正确的id
?检查xml文件中是否存在R.id.registerButton
错误
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at com.example.gibong.capstone.LoginActivity.onCreate(LoginActivity.java:35)
问题就在这方面
final TextView registerButton = (TextView)findViewById(R.id.registerButton); // This is null
确保活动布局中有一个具有android:id=“@+id/registerButton”
属性的文本视图
或者检查它是否是文本视图或按钮您尝试将
文本视图
对象强制转换为按钮
对象,或者在xml布局中不存在注册表按钮
id。确保布局文件包含id为“注册表按钮”的视图
在onCreate()中声明的
通过此代码
setContentView(R.layout.activity\u账户)代码>按钮还扩展了TextView,因此没有问题:
final TextView registerButton = (TextView)findViewById(R.id.registerButton);
因此,问题是您的活动在xml中找不到视图(id=registerButton),请检查。NullPointerException将在您尝试引用不存在的对象时发生
尝试这些方法(假设您已在XML中为android:id=“@+id/registerButton”的TextView声明OnclickLisener)
- 定义
TextView注册表按钮=(TextView)findViewById(R.id.registerButton)
文本查看注册表按钮。。。奇怪的是,按钮是TextView
,不是吗?也可以上载XML。按钮和TextView冲突将产生ClassCastException
,而不是NullPointerException
。除非它们不在同一布局下,否则可以使用相同的id。你必须看findViewById的工作才能了解更多。你是对的@MohammedAtif。感谢您的建议:)我发现xml文件上没有视图id(registerButton)。我解决了这个问题,谢谢。