一旦我尝试启动 Activity,Android 应用程序就会崩溃并显示 "Unfortunately, <appname> has stopped"

标签 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 的按钮,应用程序就会崩溃。第三个 Activity 不显示。在一次飞机旅行中,我一直在沮丧地拔头发,试图找出问题所在,但我仍然没有得到它。顺便说一句,所有 Activity 都引用了正确的布局 .xmls。

任何指针?我是这方面的新手(显然),所以我很感激任何帮助!

最佳答案

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

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

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

关于一旦我尝试启动 Activity,Android 应用程序就会崩溃并显示 "Unfortunately, <appname> has stopped",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21586880/

相关文章:

android - 是否可以合并现有的精简版和完整版(在精简版中加上应用内结算)?

android - Retrofit:是否可以传递 bean 并获得表单编码?

Android Activity 命名

java - 再次调用 Activity 时如何清除变量?

java - android studio 媒体播放器 null 对象引用

java - Android MediaPlayer 已定稿但未发布

java - If(语句)延迟

android - 我可以通过在 Android Activity 中声明适当的成员 "static"来获得一些效率吗

android - 从其他应用程序接收数据在android中为空

ios - iOS 6.1中输入中文时UIKeyboard崩溃