Java 当默认布局更改时,应用程序崩溃,并显示“不幸的是,应用程序已停止”

Java 当默认布局更改时,应用程序崩溃,并显示“不幸的是,应用程序已停止”,java,android,xml,android-layout,Java,Android,Xml,Android Layout,我制作了一个android应用程序,只有一个屏幕activity_main.xml。 当我运行应用程序时,它运行得很好。 后来,我在res/layouts中添加了另一个文件welcome.xml。 现在当我开始 setContentView(R.layout.welcome) 应用程序崩溃了。下面是我的welcome.xml代码: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" a

我制作了一个android应用程序,只有一个屏幕activity_main.xml。 当我运行应用程序时,它运行得很好。 后来,我在res/layouts中添加了另一个文件welcome.xml。 现在当我开始
setContentView(R.layout.welcome)

应用程序崩溃了。下面是我的welcome.xml代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/head"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="80dp"
        android:text="2D X&amp;O"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="50sp" />

    <Button
        android:id="@+id/go"
        android:layout_width="100dp"
        android:layout_height="50dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="Start"
        android:textSize="20sp" />

</RelativeLayout>

MainActivity.java:

package com.nhw.dxo;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;


public class MainActivity extends Activity {


    char[][] a=new char[3][3];
        char b=' ';
        int i=0,j=0,k=0,o=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.welcome);          
        for(j=0;j<3;j++)
        {
            for(k=0;k<3;k++)
            {
                a[j][k]=' ';
            }
        }

        Button btn1 = (Button)findViewById(R.id.btn1);
        Button btn2 = (Button)findViewById(R.id.btn2);
        Button btn3 = (Button)findViewById(R.id.btn3);
        Button btn4 = (Button)findViewById(R.id.btn4);
        Button btn5 = (Button)findViewById(R.id.btn5);
        Button btn6 = (Button)findViewById(R.id.btn6);
        Button btn7 = (Button)findViewById(R.id.btn7);
        Button btn8 = (Button)findViewById(R.id.btn8);
        Button btn9 = (Button)findViewById(R.id.btn9);

        btn1.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {   j=0;k=0;
                if((a[j][k]==' ')&&(o==0)){
                TextView op1 = (TextView)findViewById(R.id.btn1);
                op1.setText(String.valueOf(p(b,i)));a[0][0]=p(b,i);
                o=check(a,j,k,o);i++;
            }
        }});
        btn2.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {j=0;k=1;
            if((a[j][k]==' ')&&(o==0)){
                TextView op2 = (TextView)findViewById(R.id.btn2);
                op2.setText(String.valueOf(p(b,i)));a[0][1]=p(b,i);
                o=check(a,j,k,o);i++;
        }}});
        btn3.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {j=0;k=2;
            if((a[j][k]==' ')&&(o==0)){
                TextView op3 = (TextView)findViewById(R.id.btn3);
                op3.setText(String.valueOf(p(b,i)));a[0][2]=p(b,i);
                o=check(a,j,k,o);i++;
        }}});
        btn4.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {j=1;k=0;
            if((a[j][k]==' ')&&(o==0)){
                TextView op4 = (TextView)findViewById(R.id.btn4);
                op4.setText(String.valueOf(p(b,i)));a[1][0]=p(b,i);
                o=check(a,j,k,o);i++;
        }}});
        btn5.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {j=1;k=1;
            if((a[j][k]==' ')&&(o==0)){
                TextView op5 = (TextView)findViewById(R.id.btn5);
                op5.setText(String.valueOf(p(b,i)));a[1][1]=p(b,i);
                o=check(a,j,k,o);i++;
        }}});
        btn6.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {j=1;k=2;
            if((a[j][k]==' ')&&(o==0)){
                TextView op6 = (TextView)findViewById(R.id.btn6);
                op6.setText(String.valueOf(p(b,i)));a[1][2]=p(b,i);
                o=check(a,j,k,o);i++;
        }}});
        btn7.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {j=2;k=0;
            if((a[j][k]==' ')&&(o==0)){
                TextView op7 = (TextView)findViewById(R.id.btn7);
                op7.setText(String.valueOf(p(b,i)));a[2][0]=p(b,i);
                o=check(a,j,k,o);i++;
        }}});
        btn8.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {j=2;k=1;
            if((a[j][k]==' ')&&(o==0)){
                TextView op8 = (TextView)findViewById(R.id.btn8);
                op8.setText(String.valueOf(p(b,i)));a[2][1]=p(b,i);
                o=check(a,j,k,o);i++;
            }}});
        btn9.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {j=2;k=2;
            if((a[j][k]==' ')&&(o==0)){
                TextView op9 = (TextView)findViewById(R.id.btn9);
                op9.setText(String.valueOf(p(b,i)));a[2][2]=p(b,i);
                o=check(a,j,k,o);i++;
            }}});
    }

    public char p(char b,int i)
    {
        if(i%2==0) {b='X';}
        else {b='O';}
        return b;
    }

    public int check(char[][] a,int j, int k,int o)
    {
        if(a[j][0]==a[j][1]&&a[j][1]==a[j][2]&&a[j][k]!=' ') {o+=1;}
        if(a[0][k]==a[1][k]&&a[1][k]==a[2][k]&&a[j][k]!=' ') {o+=1;} 
        if(((a[0][0]==a[1][1]&&a[1][1]==a[2][2])||(a[0][2]==a[1][1]&&a[1][1]==a[2][0]))&&a[1][1]!=' ') {o+=1;}
        TextView txt = (TextView)findViewById(R.id.txt);
        if(o!=0){txt.setText("GG");}
        else {
            if(i%2==1) {txt.setText("Player 1 : X");}
            else {txt.setText("Player 2 : O");}
        }
        return o;
    }



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

}
package com.nhw.dxo;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.Menu;
导入android.view.view;
导入android.widget.Button;
导入android.widget.TextView;
公共类MainActivity扩展了活动{
字符[][]a=新字符[3][3];
字符b=“”;
int i=0,j=0,k=0,o=0;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);

对于(j=0;j您的
welcome.xml
没有您初始化的所有按钮。您只有一个按钮和
welcome.xml


findViewById
在设置为活动的当前视图层次结构中查找视图。您可能会遇到
NullPointerException
导致崩溃

我看不到您的
welcome.xml
文件中定义的所有这些按钮…只有一个id为go的按钮。