一旦我尝试启动活动</appname>,Android应用程序崩溃“不幸的是,<appname>已停止”

时间:2014-02-05 19:39:39

标签: android android-activity crash oncreate

以下是MainActivity代码:

package com.vanitfyf.karko;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        TextView textView1 = (TextView) findViewById(R.id.textView1);
        textView1.setTextColor(Color.BLUE);
        Button button1 = (Button) findViewById(R.id.button1);


        button1.setOnClickListener(new OnClickListener()
            {
                public void onClick(View v)
            {
                Toast.makeText(MainActivity.this, "entering debug mode", Toast.LENGTH_LONG).show();
                startActivity(new Intent(MainActivity.this, SecondActivity.class ));
            }

        });

    Button button2 = (Button)findViewById(R.id.button2);
    button2.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "entering normal mode", Toast.LENGTH_LONG).show();
                startActivity(new Intent(MainActivity.this, ThirdActivity.class));

            }
        });
    }





   /* @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;
    }*/

}

这是SecondActivity代码:

package com.vanitfyf.karko;

import android.app.*;
import android.content.*;
import android.os.*;
import android.widget.*;

public class SecondActivity extends Activity
{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second); }




protected void show(Context context) {
    Toast.makeText(context, "welcome", Toast.LENGTH_LONG).show();

    }


}

这是ThirdActivity代码:

package com.vanitfyf.karko;

import android.app.*;
import android.os.*;
import android.widget.*;

public class ThirdActivity extends Activity { 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activitythird);

    TextView textview2 = (TextView) findViewById(R.id.textview2);
    textview2.setText("Welcome to normal mode");

    }
  }

当我尝试按下打开ThirdActivity的按钮时,应用程序会出现问题。第三个活动不显示。在飞机旅行期间,我一直在沮丧地拔出我的头发试图找出错误的但我仍然没有得到它。顺便说一句,活动都引用了正确的布局.xmls。

任何指针?我是新手(很明显),所以我很感激任何帮助!

2 个答案:

答案 0 :(得分:0)

根据您提供的代码,有几个直观的原因会导致您的应用在您描述的情况下崩溃。

确保在Manifest中声明第三个Activity,否则在启动Activity时您将收到一个空指针异常(可能导致应用程序崩溃)。这是您的应用程序中的所有活动的要求。请在此处查看更多信息:http://developer.android.com/guide/topics/manifest/manifest-intro.html

此外,请验证第三个Activity的活动“activitythird”是否为有效的资源名称,并包含您在第三个活动“textview2”中引用的TextView。如果使用Eclipse ADT或Android Studio等IDE,则应该收到未找到资源的指示;如果不是自动的,至少在编译时。这同样适用于启动第三个活动“button2”的启动按钮。

答案 1 :(得分:0)

如果未在清单中声明,它也会显示在LogCat