Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我想我的aboutButton中的NullPointer异常_Android - Fatal编程技术网

Android 我想我的aboutButton中的NullPointer异常

Android 我想我的aboutButton中的NullPointer异常,android,Android,我的第二本Android编程书《你好,Android》,Ed Burnette著。我正在使用eclipse。代码与该书匹配,并且与从该书网站下载的代码匹配。但我知道我做错了什么。我添加了一系列断点,在这些断点处我估计(主要是猜测)问题可能发生的位置。我得出的结论是,这一行代码是罪魁祸首(SudokuActivity.java第21行),您可以在这里下载整个代码 aboutButton.setOnClickListener(此) 但我就是不明白为什么?一定是因为我在别的地方做错了什么。我已经删除

我的第二本Android编程书《你好,Android》,Ed Burnette著。我正在使用eclipse。代码与该书匹配,并且与从该书网站下载的代码匹配。但我知道我做错了什么。我添加了一系列断点,在这些断点处我估计(主要是猜测)问题可能发生的位置。我得出的结论是,这一行代码是罪魁祸首(SudokuActivity.java第21行),您可以在这里下载整个代码

aboutButton.setOnClickListener(此)

但我就是不明白为什么?一定是因为我在别的地方做错了什么。我已经删除并重新创建了avd,这没有什么不同,所以不是它。我在这里迷路了

public class SudokuActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    View aboutButton = findViewById(R.id.about_button);
    aboutButton.setOnClickListener(this);
}    

我要感谢每一个回应的人,这一切都是固定和工作,没有你的帮助我不可能做到这一点。我在这个问题上学到了更多的东西,如果不是几个月的无问题编程,我也会在几周内学会

Yout aboutButton未正确绑定

做点像


按钮aboutButton=(按钮)findViewById(R.id.about_按钮)

我下载了你的代码,它在我的手机上运行正常。因此,如果您的代码相同,它应该运行。 findViewById似乎没有找到视图,然后对null对象调用方法导致了nullpointerexception

我愚蠢的问题:你有没有尝试过清理项目?您甚至可以尝试保存类、删除项目并创建新类。
希望它对您有所帮助,但不会造成任何影响-视图将同一个onclicklistener作为布局中main.xml的按钮,并查看它是否有id为“about_button”的视图,这一定是问题所在。如果您意外导入了
android.content.DialogInterface.onclicklistener
,阅读您的回复后,我想知道main.xml文件中的之间的顺序有多重要。因此,我复制并粘贴移动底部的android:id并将其移动到顶部,然后将android:text移动到底部。瞧,现在一切都好了。看来这个订单对avd来说是个大问题。@user1355452不,等等,它需要更多的解释。XML中的属性顺序并不重要。这里有更多。我敢打赌,正如我告诉你的,这里有一个清理问题。Android编译器在一个名为R的类中自动构建资源文件(即XML)。通常,在您更改资源时,会再次编译该类。因此,当您更改移动id的xml时,它会再次编译资源,这就解决了问题。您可以尝试将id移回原来的位置,然后再次尝试运行您的示例。它应该有用!我确实使用了project->clean选项,卸载了所有内容,甚至删除了eclipse,重新安装后仍然无法工作。我知道R id和R.java文件的警告,但从未考虑过这个问题。我确实移动了身份证,它仍然工作得很好。R id问题让我想切换到Windows Phone,但我太固执了:)