我得到这个错误:
ntime:致命异常:主进程:com.example。puzzle\u项目,PID:4100 java.lang.RuntimeException:无法启动活动ComponentInfo{com.example.puzzle\u项目/com.example.puzzle\u项目.MainActivity}:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.Button.setOnClickListener(android.view.view$OnClickListener)”
但是我不知道问题出在哪里。
我的主要活动是:
package com.example.puzzle_project;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
public static final String EXTRA_TEXT="com.example.application.example.EXTRA_TEXT";
public static final String EXTRA_NUMBER="com.example.application.example.EXTRA_NUMBER";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openActivity2();
}
});
}
public void openActivity2(){
EditText editText1= (EditText) findViewById(R.id.edittext1);
String text= editText1.getText().toString();
EditText editText2=(EditText)findViewById(R.id.edittext2);
int number = Integer.parseInt(editText2.getText().toString());
Intent intent = new Intent(this, Activity2.class);
intent.putExtra(EXTRA_TEXT,text);
intent.putExtra(EXTRA_NUMBER,number);
startActivity(intent);
}
}
取出方法的元素,在类活动中不使用findviewbyid对其进行初始化,在方法onClick()中,对元素使用“findviewbyid”,并将这些元素作为方法openActivity2()的参数传递。
我没有尝试过,但我认为这是个问题。
NullPointerException
当您尝试使用对象方法或变量为空时发生:-
String name = null;
int len = name.length();
这还会引发NullPointerException。每个html" target="_blank">程序员都会遇到这种类型的错误,这是很常见的,解决这个问题的最好方法是阅读错误,就像你在问题中分享的那样:-
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.puzzle_project/com.example.puzzle_project.MainActivity}:
java.lang.NullPointerException: Attempt to invoke virtual method 'void
android.widget.Button.setOnClickListener(android.view.View$OnClickListener)'
on a null object reference
让我们试着理解这个错误,它是怎么说的,
第一行是无法启动活动,这意味着OnCreate()方法中存在问题,因为调用了第一个OnCreate()方法来启动任何活动。
第二行是在空对象引用上尝试调用虚拟方法“void android.widget.Button.setOnClickListener(android.view.view$OnClickListener)”,因为您可以阅读此在空对象引用上调用方法的尝试,这意味着您在单击空对象时被调用意味着按钮为空。
现在让我们理解为什么按钮为空,按钮可以为空,原因如下:-
现在为什么findViewById()返回null,因为您可能输入了错误的id,而findViewById无法在视图中找到您的id。
简而言之,检查您的View Id和findViewById()它的问题,因为findViewById返回null。
我可以这么说,但我只想让你自己解决你的问题,因为你会在未来得到一个地狱的错误。
感谢阅读
尝试此代码
遵循2件事-
Android:输入类型="数字"
public class MainActivity extends AppCompatActivity {
public static final String EXTRA_TEXT = "com.example.application.example.EXTRA_TEXT";
public static final String EXTRA_NUMBER = "com.example.application.example.EXTRA_NUMBER";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openActivity2();
}
});
}
public void openActivity2() {
EditText editText1 = (EditText) findViewById(R.id.edittext1);
String text = editText1.getText().toString();
EditText editText2 = (EditText) findViewById(R.id.edittext2);
String number = (editText2.getText().toString());
if (text.isEmpty() || number.isEmpty()) {
Toast.makeText(this, "Please add inputs", Toast.LENGTH_LONG).show();
return;
}
Intent intent = new Intent(this, Activity2.class);
intent.putExtra(EXTRA_TEXT, text);
intent.putExtra(EXTRA_NUMBER, number);
startActivity(intent);
}
}
错误是: 错误:(50,17)错误:没有为startActivities(Intent)方法Activity找到合适的方法。startActivities(Intent[],Bundle)不适用(实际和正式的参数列表长度不同)方法Activity.startActivities(Intent[])方法上下文twrapper.startactivities(Intent[],Bundle)不适用(实
我目前正在一个android项目,当试图运行后构建的应用程序平原崩溃。以下是LogCat详细信息: 2021-11-13 13:37:08.105 11908-11908/com.example.finalprojectE/AndroidRuntime: FATAL EXCEPTION:主进程:com.example.finalproject, PID: 11908java.lang.Runtim
问题内容: 这是我的应用程序级别gradle文件: 编译项目时出现的完整错误是: 错误:任务’:app:transformDexArchiveWithExternalLibsDexMergerForDebug’的执行失败。 java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:无法合并dex
问题内容: 我尝试在Ubuntu 11.04和Java 6 sun上安装Hadoop。我正在使用hadoop 0.20.203 rc1构建。我在使用Java-6-sun的Ubuntu 11.04上反复遇到问题。当我尝试启动hadoop时,由于“无法访问存储”,datanode无法启动。 我曾尝试从Apache甚至cloudera的0.20分支中升级和降级到几个版本,还尝试再次删除并安装hadoop
问题内容: 升级后去运行jenkins,并获得以下信息: 就是这样…詹金的日志中什么也没有显示…所以很难说很难调试。(它还没有运行,或者类似的东西)。 我应该在其他地方查看另一个日志会有所帮助吗?(我假设对这个问题的回答将是反复的,所以希望有人可以在调试它的道路上开始我的工作) 问题答案: 因此,知道这是一个启动前错误,使我可以进行更深入的研究。 进一步的挖掘使我发现文件中的确切行是指向 看着这个
Xampp、mysql、phpmyadmin几天前运行得很好。现在我正遇到这个问题。 Xampp控制面板还提供了以下错误详细信息: 我也试着这样做,这对一些有同样问题的人是有效的 XAMPP-MySQL意外关闭
我在Windows7中配置Hadoop是从教程中设置单个节点集群开始的。当运行来格式化namenode时,它会抛出类似的异常:当自动强制windows namenode时,我可以打开地址为http://localhost:50070的namenode GUI。 yarn-site.xml