【问题标题】:Emulator shows "Unfortunately app has stopped" [closed]模拟器显示“不幸的是应用程序已停止”[关闭]
【发布时间】:2015-06-30 05:35:55
【问题描述】:

虽然我正在调试代码,但它没有显示任何错误......但在运行应用程序时它显示“不幸的是应用程序已停止”。这是我的 Activity 2 页面......从这个页面点击下一步按钮它应该移动到活动 3 页面。这是我的活动 2 页面

                     package com.example.admin.androidapp;

        import android.app.Activity;
        import android.content.Context;
        import android.content.Intent;
        import android.os.Bundle;
        import android.widget.Button;
        import android.view.View;
        import android.view.View.OnClickListener;
        import android.widget.Toast;

        public class Activity2 extends Activity  {

            Button btn11;
            Button btn22;
            public Intent intent;
            Button btn;



            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);

                setContentView(R.layout.activity_activity2);

                btn11 = (Button) findViewById(R.id.button2);
                btn22 = (Button) findViewById(R.id.button5);

                 btn = (Button) findViewById(R.id.button2);
                btn.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        switch (v.getId()) {
                            case R.id.button2:
                                intent = new Intent(Activity2.this, Activity3.class);
                                startActivity(intent);
                                break;

                            case R.id.button5:
                                intent= new Intent(Activity2.this, Welcome.class);
                                startActivity(intent);
                                break;


                        }
                    }

                });

            }





        }

===============================================================

here is my Activity3 page:


    package com.example.admin.androidapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;

    public   class Activity3 extends Activity{
    RadioGroup radiogroup;
    Button btn1;
    private Intent mIntent;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_activity3);

        radiogroup = (RadioGroup) findViewById(R.id.radiogroup);
        btn1 = (Button) findViewById(R.id.button);

        radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {



@Override
        public void onCheckedChanged(RadioGroup radioGroup, int RadioID) {
                RadioButton rd = (RadioButton) radioGroup.findViewById(RadioID);


    switch (rd.getId()) {
    case R.id.radioButton7:
                       mIntent = new Intent(Activity3.this, Terminate.class);
                        break;
    case R.id.radioButton8:
                    mIntent = new Intent(Activity3.this, Activity4.class);
                    break;
    case R.id.radioButton10:
                    mIntent = new Intent(Activity3.this, Activity4.class);
                    break;
    case R.id.radioButton11:
                    mIntent = new Intent(Activity3.this, Activity4.class);
                    break;
    case R.id.radioButton15:
                    mIntent = new Intent(Activity3.this, Activity4.class);
                    break;
    case R.id.radioButton16:
                    mIntent = new Intent(Activity3.this, Activity4.class);
                    break;
    case R.id.radioButton17:
                    mIntent = new Intent(Activity3.this, Activity4.class);
                    break;
    case R.id.radioButton18:
                    mIntent = new Intent(Activity3.this, Activity4.class);
                    break;
    case R.id.radioButton19:
                    mIntent = new Intent(Activity3.this, Activity4.class);
                    break;
    case R.id.radioButton13:
                    mIntent = new Intent(Activity3.this, Activity4.class);
                    break;
    case R.id.radioButton12:
                    mIntent = new Intent(Activity3.this, Activity4.class);
                    break;
      case R.id.radioButton14:
                    mIntent = new Intent(Activity3.this, Activity4.class);
                    break;
     }
      } 
     }

=========================================== 请检查上面的代码并在这个问题上帮助我.. 提前致谢。 我在 logcat 中收到此消息,同时单击 java.lang.NullPointerException 之类的按钮:尝试调用虚拟方法

【问题讨论】:

  • 'btn' 它是在 Activity2 中定义的?请检查..
  • @Android Killer .. 我在活动中声明了 'btn' 但同样的错误
  • @nag 我的日志猫显示:尝试在 com.example.admin 的空对象引用上调用虚拟方法 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' .androidapp.Activity2.onClick(Activity2.java:52)
  • 你已经使用 findViewById(-) 初始化了 btn。

标签: java android android-studio


【解决方案1】:

问题是您在oncreate 之外为 btn 调用 onclick。将以下代码移动到您的 onCreate 中。另外你需要initialise按钮

Button btn = (Button) findViewById(R.id.btn);
 btn.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        if (intent != null) {
                            startActivity(intent);
                        } else {
                            Toast.makeText(getApplicationContext(), "No choice made yet", Toast.LENGTH_SHORT).show();
                        }


                    }

                });

编辑:

试试这个

btn.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                           Intent intent = new Intent(Activity2.this, Activity3.class);
    startActivity(intent);

                        }

                    });

您没有初始化意图,因此它始终为空,因此它进入 else 条件。然后你在那里添加 Toast。

Toast.makeText(getApplicationContext(), "No choice made yet", Toast.LENGTH_SHORT).show(); 

它正在显示。

【讨论】:

  • 进行了此编辑....但是....当我单击下一步时,它显示“尚未做出选择”并且我的 logcat 显示为“向调试器发送回复失败:管道损坏”
  • 现在我的第一个问题出现了,例如“不幸的是应用程序已停止”并且我的后退按钮正在工作..
  • 好的,然后接受答案并关闭。
  • sry 我的 BACK 按钮不是 NEXT... 我需要 NEXT 按钮才能工作
  • 我在我的活动中做了一些修改2...请检查我的修改
猜你喜欢
  • 2014-08-04
  • 2012-07-12
  • 2012-01-08
  • 2014-02-26
  • 1970-01-01
  • 2013-05-02
  • 2014-09-22
  • 2014-11-03
  • 1970-01-01
相关资源
最近更新 更多