缺少一些简单的东西(按钮 OnClick 导致空指针)

Posted

技术标签:

【中文标题】缺少一些简单的东西(按钮 OnClick 导致空指针)【英文标题】:Missing Something Easy (Button OnClick Causing Null Pointer) 【发布时间】:2011-12-09 03:37:03 【问题描述】:

突然我的按钮导致空指针异常。我没有更改此活动类中的任何代码。我周末大部分时间都在忙着试图解决这个问题。我在模拟器和设备上都得到空指针异常。

这是一个带有按钮的简单屏幕。我可以轻松地废弃它并编写新代码,但想知道是什么导致了这个问题。如果没有,我就写新代码。

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


Button b1 = (Button) findViewById(R.id.MainActBtn);

b1.setOnClickListener(new View.OnClickListener()  //Error is here

        public void onClick(View v) 
            Intent intent = new Intent(StartScreen.this, MainActivity.class);
            startActivity(intent);

        
    );

有什么帮助吗?

【问题讨论】:

您是否在清单文件中添加了 MainActivity 活动? 添加您的布局 xml 或确保您输入正确的 id 并在 setContentView() 之后完成此过程 是的。错误实际上是指向 onclicklistener 行 当指向它时错误会说什么??? 【参考方案1】:

尝试重新构建您的项目。我以前也遇到过这个错误,是R.classResource类改变引起的,但是使用类中的静态引用没有被增量java编译器正确替换,所以资源找不到了。

【讨论】:

我知道这将是一件非常容易的事情。在完全清理和重建后,重新编译了 R 资源。 Eclipse 有时会做一些我不知道的事情。【参考方案2】:

我认为您不会因为按钮单击而获得空指针异常,只是因为按钮的声明..

您可以在编写 onClickListener 之前进行检查..

if(b1==null)
 Log.i("Null","Null");

问题可能在于设置 XML 视图,或者检查您正在使用的按钮是否在您在 setContentView 中使用的同一个 xml 中定义。

在这一切之后,还要清理并构建您的项目。

【讨论】:

我已经准备好添加该行以便在发布问题之前进行检查。 弗兰克,我不得不取消选中自动生成,清理项目,然后重新选中自动生成。

以上是关于缺少一些简单的东西(按钮 OnClick 导致空指针)的主要内容,如果未能解决你的问题,请参考以下文章

如何将简单的 onClick 事件处理程序添加到画布元素?

onClick按钮导致Android崩溃

当按钮在Android上的LinearLayout中时,onClick不会触发

在转发器中的按钮 onclick 事件上使用 javascript 导致更新面板中的完整回发

ImageButton onlongpress 也会导致 onclick

Cocoa/PyObjC 分布式对象缺少一些东西