Android 应用程序意外停止

Posted

技术标签:

【中文标题】Android 应用程序意外停止【英文标题】:Android application stopped unexpectedly 【发布时间】:2012-02-07 19:40:13 【问题描述】:

当我在 Eclipse 中编写我的代码(以下)时,它在模拟器上给出了一个错误,即您的应用程序已意外停止。 sdk没有安装错误。这是我的代码。

public class startingPoint extends Activity 
    /** Called when the activity is first created. */

    int counter1,counter2;
    Button add;
    Button sub;
    TextView display;

    @Override
    public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        counter1=counter2 = 0;
        add = (Button) findViewById(R.id.bAdd);
        add = (Button) findViewById(R.id.bSub);
        display = (TextView) findViewById(R.id.tvDisplay);
        add.setOnClickListener(new View.OnClickListener() 

            public void onClick(View arg0) 
                counter1=counter1+1;
                display.setText("Your total is "+counter1);

            
        );
        sub.setOnClickListener(new View.OnClickListener() 

            public void onClick(View arg0) 
                counter2=counter2-1;
                display.setText("Your total is "+counter2);
            
        );
    

【问题讨论】:

【参考方案1】:

你有一个复制和粘贴错误,你从来没有初始化sub

add = (Button) findViewById(R.id.bAdd);
add = (Button) findViewById(R.id.bSub); // should be sub instead of add

对于下一个问题,请查看您的 LogCat 并发布堆栈跟踪,因为这可能有助于我们更轻松地找到错误。

【讨论】:

【参考方案2】:

你得到 nullPointer 异常,因为你没有初始化子变量。修改你的代码:

add = (Button) findViewById(R.id.bAdd);
add = (Button) findViewById(R.id.bSub);

add = (Button) findViewById(R.id.bAdd);
sub = (Button) findViewById(R.id.bSub);

【讨论】:

【参考方案3】:

您为同一个变量分配了两次新值。

add = (Button) findViewById(R.id.bAdd);
add = (Button) findViewById(R.id.bSub);

我认为应该是这样的:

add = (Button) findViewById(R.id.bAdd);
sub = (Button) findViewById(R.id.bSub);

在您的代码中,sub.setOnClickListener 抛出 NullPointerException,因为 sub 为空。

【讨论】:

以上是关于Android 应用程序意外停止的主要内容,如果未能解决你的问题,请参考以下文章

aspnet_wp.exe 意外停止 服务器应用程序不可用

与意外的交叉线程和停止作斗争

Android应用程序不断崩溃

一解锁手机屏幕上就出现抱歉,进程"com.android.systemui"已停止运行,怎么办

他说,系统,致命错误,系统意外终止,它的系统已停止运行,怎么办?

使用 javax.sound.sampled.Clip 在游戏中播放、循环和停止多个声音。意外错误