java - 错误 java.lang.RuntimeException : Unable to start activity

标签 java android android-intent

我正在创建我的第一个 Android 应用程序,所以我对此还很陌生。一切都很顺利,但现在我收到了错误。该应用程序非常简单。基本上有一个带有问题和 2 个按钮的 Activity 。根据问题的答案,您可以单击一个按钮,将您带到另一项 Activity 。基本上你会不断回答问题,直到得到最终答案。

我收到错误的地方之前是可以工作的,但现在它崩溃了,我不知道为什么。

这是错误:

02-28 18:45:42.969    1851-1851/c.whats_that_plane D/AndroidRuntime﹕ Shutting down VM
    --------- beginning of crash
02-28 18:45:42.970    1851-1851/c.whats_that_plane E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: c.whats_that_plane, PID: 1851
    java.lang.RuntimeException: Unable to start activity ComponentInfo{c.whats_that_plane/c.whats_that_plane.jtailtype}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference

这是我单击的按钮的代码

public class Propellers extends ActionBarActivity {

private static Button button_propellers;
private static Button button_jetengine;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_propellers);
    Gotoptailtype ();
    Gotojtailtype ();
}
public void Gotoptailtype () {
    button_propellers = (Button)findViewById(R.id.buttonyes);
    button_propellers.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent toptailtype = new Intent("c.whats_that_plane.ptailtype");
                    startActivity(toptailtype);
                }
            }
    );
}
public void Gotojtailtype () {
    button_jetengine = (Button)findViewById(R.id.buttonno);
    button_jetengine.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent tojtailtype = new Intent("c.whats_that_plane.jtailtype");
                    startActivity(tojtailtype);
                }
            }
    );
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_propellers, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
}

特别是当我单击“否”按钮时。这调用了上面代码的这一部分。

public void Gotojtailtype () {
    button_jetengine = (Button)findViewById(R.id.buttonno);
    button_jetengine.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent tojtailtype = new Intent("c.whats_that_plane.jtailtype");
                    startActivity(tojtailtype);
                }
            }
    );
}

在 Intent 中,如果我将 Activity c.whats_that_plane.jtailtype 替换为 c.whats_that_plane.ptailtype,则就像单击"is"按钮一样,它将转到 ptailtype Activity 。因此,当它尝试调用 jtailtype Activity 时出现了问题。

我所看到的一切看起来都很好。 list 、Java 和 Activity 。有人可以告诉我应该在哪里查找导致此错误的原因或者您是否需要更多信息。谢谢。

最佳答案

该行发生异常

Intent toptailtype = new Intent("c.whats_that_plane.ptailtype");
                    startActivity(toptailtype);

使用此代码启动不同的 Activity

Intent toptailtype = new Intent(Propellers.this,SecondActivity.class);
                    startActivity(toptailtype);

还要确认您是否正确调用了 Activity,并且您调用的 Activity 没有抛出任何 NPE。

关于java - 错误 java.lang.RuntimeException : Unable to start activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28789342/

相关文章:

java - SVG 到多页 PDF

java - 如何在 Java 中引用封闭的匿名类实例?

android - 在 Android 中将具有特定 id 的数组列表从一个类传递到另一个类

java - Android Studio 的自定义字体无法在设备上运行

android - 按下按钮时在 TextView 上显示 LatLng

java - 共享 viewpager 制作的 slider 中的特定图像

android - 从 Activity 中关闭另一个应用程序

java - 在 XmlElement 上不区分大小写

java - new InitialContext() 上的无限递归

android - 我在尝试运行 Android 虚拟设备时收到错误列表