Android App运行时错误

时间:2013-02-23 18:20:16

标签: java android

我有一个Android项目的2个班级。 第一个类是Activity,第二个类只是一个实现接口的OnClickListener。

如果我在手机上运行项目,我总是会遇到运行时错误。 我也收到了消息:

指定的活动不存在!获得启动器活动。

这是我的两个班级

SendActivity

package kops.sms;

//import android.R;
import android.app.Activity;

import android.os.Bundle;
import android.view.Menu;
import android.widget.Button;

public class SendActivity extends Activity {


Button buttonSend= (Button) findViewById(R.id.buttonSend);

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

    buttonSend.setOnClickListener(new ButtonListener());
}



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




}

和ButtonListener

package kops.sms;

import android.view.View;
import android.view.View.OnClickListener;

public class ButtonListener implements OnClickListener {

     @Override
        public void onClick(View v)
        {

        }


}

我不知道出了什么问题......

我期待您的回复! :)

2 个答案:

答案 0 :(得分:1)

在致电findViewById()之后, {em>}之后才能致电setContentView()。请搬家:

Button buttonSend= (Button) findViewById(R.id.buttonSend);

之后:

setContentView(R.layout.activity_send);

之前:

buttonSend.setOnClickListener(new ButtonListener());

此外,将来,请使用LogCat(例如,在Eclipse中的DDMS透视图中)检查与崩溃关联的Java堆栈跟踪。你会被告知你的NullPointerException,这可能有助于你解决问题。

答案 1 :(得分:0)

确保您的清单中宣布了您的Activity。另外,请更改onCreate()

public class SendActivity extends Activity {


Button buttonSend;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_send);
    buttonSend = (Button) findViewById(R.id.buttonSend);
    buttonSend.setOnClickListener(new ButtonListener());
}  

在致电View Button之前,您无法拨打setContentView() Layout Layout并且您还没有充气在致电setContentViewe()之前,您需要Logcat。 如果这些问题无法解决您的问题,请发布Activity

修改

除非我错过了,否则您需要在清单中包含所有<activity android:name="your.package.name.SendActivity" // activity attributes such as config changes, lable, etc... </activity> 个。类似的东西:

{{1}}

<强> logcat的

Logcat输出可以是确定崩溃的最重要部分之一。它列出了错误的内容以及出现问题的活动的行号。如果使用Eclipse,

  

窗口 - &gt;显示视图 - &gt;其他 - &gt; Android - &gt; Logcat

如果使用编码括号复制/粘贴Logcat,则可以更轻松地获得帮助。您还可以为日志设置过滤器,这样您就不会收到每条消息,而且更易于管理。例如,我有一个过滤器:Filter Name:Runtime,Log Tag:AndroidRuntime,Log Level:error。这只给出了运行时错误/崩溃的错误消息。这些过滤器位于logcat视图的左侧。希望这有帮助